オリジナルのtheme(テーマ)を作る15:パーツごとに分ける(共通化)
これまで、ひたすらindex.phpに書いてきましたが・・(笑)
header.phpとfooter.phpを分けたいなーと思います。
いよいよwordpressらしく!なってきましたね(*´ω`)
まず、空のheader.phpとfooter.phpを作って、FTPでアップロードします。
※空のままでOKよ
テーマの編集画面から、index.phpのヘッダー部分をコピーして、header.phpに貼り付けます。
同じように、index.phpのフッター部分をコピーして、footer.phpに貼り付けます。
※ヘッダー部分は、index.phpの先頭(<!DOCTYPE html>)からメイン(コンテンツ)部分の手前まで。
※フッター部分は、index.phpのメイン(コンテンツ)部分の下から最下部(</html>)まで。
<?php get_header(); ?>index.phpのヘッダー部分を上記の関数に書き換えます。
この記述部分にheader.phpの内容が組み込まれます。
<?php get_footer(); ?>index.phpのフッター部分を上記の関数に書き換えます。
この記述部分にfooter.phpの内容が組み込まれます。
パーツ分けできたら、ちゃんと表示されているか確認してみましょうー!
無事に、header.phpとfooter.phpのパーツ分けができたかな(^^)
wp_head関数
<head>
........
<?php wp_head(); ?>
</head>
header.phpに上記のようにwp_head関数を入れます。
wp_footer関数
........
<?php wp_footer(); ?>
</body>
footer.phpに上記のようにwp_footer関数を入れます。
Wordpressで基本的に読み込まれているJavaScriptやcssなど、ヘッダー部分やフッター部分に自動的に組み込まれます。
<?php body_class(); ?>
<body <?php body_class(); ?>>
bodyタグには、<?php body_class(); ?>を入れます。
body内で使われるWordpressのclassなどが自動的に組み込まれます。
<?php get_template_part('xxx','yyy'); ?>共通化するテンプレートは主にheader.php、sidebar.php、footer.phpなどがありますが、これらの他にテンプレートパーツが作れます。
テンプレートパーツは、ヘッダーやフッターとは別に、ページの一部分だけをテンプレートにして、他のテンプレートに組み込むものです。
たとえば、投稿のループ部分を共通化したい場合、loop.phpというテンプレートパーツのファイルを作り、組み込みたい位置に下記の記述をします。
<?php get_template_part('loop'); ?>
loop-top.php、loop-sub.phpのように、複数のテンプレートパーツを使い分ける場合の書き方は以下のようになります。
<?php get_template_part('loop', 'top'); ?>
<?php get_template_part('loop', 'sub'); ?>
ヘッダーを複数作ってページによって切り替えるヘッダーを複数作って、トップページとその他のページで表示するヘッダーを分ける、といったことも可能です。
その場合、たとえばheader-top.phpと、header-other.phpのように2種類テンプレートを用意します。
これらのヘッダーを組み込むときは、
<?php get_header('top'); ?>
<?php get_header('other'); ?>
のように、テンプレートの名前を入れます。
sidebar.phpやfooter.phpの場合も同様です。
トップページのテンプレート階層 | |
---|---|
front-page.php | トップページを出力 |
home.php | トップページを出力 |
index.php | すべてのページを出力するようにできる |
投稿ページのテンプレート階層 | |
single-post.php | 個々の投稿ページを出力 |
single.php | 個々の投稿ページを出力 |
singular.php | 個々の投稿ページと固定ページを出力(WP4.3以降) |
index.php | すべてのページを出力するようにできる |
固定ページのテンプレート階層 | |
カスタムテンプレート.php | 個々の固定ページを出力 |
page-スラッグ.php | 特定のスラッグの固定ページを出力 |
page-ID.php | 特定のIDの固定ページを出力 |
page.php | 個々の固定ページを出力 |
singular.php | 個々の投稿ページと固定ページを出力(WP4.3以降) |
index.php | すべてのページを出力するようにできる |
カテゴリーアーカイブページのテンプレート階層 | |
category-スラッグ.php | 特定のスラッグのカテゴリーアーカイブページを出力 |
category-ID.php | 特定のIDのカテゴリーアーカイブページを出力 |
category.php | カテゴリーごとのアーカイブページを出力 |
archive.php | 様々なアーカイブ系ページを出力 |
index.php | すべてのページを出力するようにできる |
年別・月別・日別アーカイブページのテンプレート階層 | |
date.php | 年月日ごと等のアーカイブページを出力 |
archive.php | 様々なアーカイブ系ページを出力 |
index.php | すべてのページを出力するようにできる |
タグアーカイブページのテンプレート階層 | |
tag-スラッグ.php | 特定のスラッグのタグアーカイブページを出力 |
tag-ID.php | 特定のIDのタグアーカイブページを出力 |
tag.php | タグごとのアーカイブページを出力 |
archive.php | 様々なアーカイブ系ページを出力 |
index.php | すべてのページを出力するようにできる |
ユーザーアーカイブページのテンプレート階層 | |
aothor-ナイスネーム.php | 特定のナイスネームのユーザーアーカイブページを出力 |
aothor-ID.php | 特定のIDのユーザーアーカイブページを出力 |
aothor.php | ユーザーごとのアーカイブページを出力 |
archive.php | 様々なアーカイブページを出力 |
index.php | すべてのページを出力するようにできる |
その他のページのテンプレート | |
search.php | 検索結果のページを出力 |
404.php | Not Foundページを出力 |
index.php | すべてのページを出力するようにできる |
header.php | ヘッダー部分を出力 |
---|---|
footer.php | フッター部分を出力 |
sidebar.php | サイドバーを出力 |
searchform.php | 検索フォームを出力 |
comments.php | コメント一覧、コメント入力フォームを出力 |
固定ページ | page-ID.php、page-スラッグ.php |
---|---|
カテゴリーごとのアーカイブページ | category-ID.php、category-スラッグ.php |
タグごとのアーカイブページ | tag-ID.php、tag-スラッグ.php |
ユーザーごとのアーカイブページ | author-ID.php、author-ナイスネーム.php |