今回から、実際にテーマに必要なテンプレートの作成の準備に入ります。
先の記事 「必要なテンプレートの種類」 で
WordPress Codex や WordPress Codex 日本語版
で公式に謳われている テンプレート階層 を紹介しました。
ただ、実際には、かなり細分化した制御をするのでもなければ
「ここまで必要ないんぢゃない?」ってものも多いので、本当に必要なものと、
個別に独自テンプレートとして独立させた方がよさそうなものを整理して、
実際に作るテンプレートを決めます。
※SmartStyleを前提に解説していますので、
ご自身の欲しいものに照らし合わせて考えてみてください
まず、index.php は、全ての リクエスト(ページアクセス) の間口
になりますので絶対必要です。
次に、世のほとんど(全て) のテーマがそうであるように、デザインの根幹となる
スタイルシートは、外部ファイル化した方がよいでしょう。
WordPress のデフォルトテーマである TwentyFourteen や TwentyThirteen、
他の一般のテーマでも外部 CSS ファイルは、style.css としていますね。
また、不正なパラメータでリクエストがあったり、削除記事に対するアクセスを
処理するために、404エラー (NotFound) を表示する 404.php も用意しましょう。
様々な種類の一覧ページを表示するアーカイブページは archive.php
だけでも問題ないかと思います。
カスタムタクソノミー別、カテゴリ別、タグ別、作成者別、
日付別(年別、月別、日別)、カスタム投稿タイプ別と、
それぞれに極端なレイアウトの差を付けなければ、
archive.php の中で多少の分岐をさせることはできますので。
必要に応じて、必要なものだけ細分化して用意すればいいと思います。
ただ、検索結果の一覧である search.php は別物になりますので
別途用意しましょう。
投稿記事を表示する single.php と
固定ページを表示する page.php は必須ですね。
サイトフロントページである front-page.php は、
WordPress の表示設定でフロントページの表示を
「最新の投稿」にした場合は home.php が、
「固定ページ」にした場合は page.php が
仕事をしてくれますので不要です。
ブログ投稿インデックスである home.php は、
存在しなかった場合は index.php が動きますので、あってもなくても
よいかとは思いますが、できれば用意した方がイイと思います。
コメントポップアップページですが、イマイチ comments-popup.php が
いつ動くのかドキュメントを見るだけでは分かりませんでした。
TwentyFourteen や TwentyThirteen のデフォルトテーマにも
ファイルがなく、プログラムを追っかけるのが面倒だったので・・・
名前から察するに、コメントをポップアップウィンドウで表示させたい
ときに動くのかなぁと・・・
コメントは個別投稿ページに埋めてしまえばいいですので不要と認定。
テンプレート階層で明示されているテンプレートファイルと別に、
WordPress では特殊なテンプレートとして使用できるファイル名のものが
あります。
get_header 関数で呼び出す(インクルードする) ことができる header.php 、
get_footer 関数で呼び出す(インクルードする) ことができる footer.php 、
get_sidebar 関数で呼び出す(インクルードする) ことができる
sidebar.php 等は各ページ上下の部分や
ウィジェットを配置する部分を共通化するのに便利です。
get_sidebar 関数に文字列パラメータを指定すると、
sidebar-[パラメータ文字列].php を呼び出してくれるので、
用途や配置場所によって複数用意することも可能です。
分かりやすい名前をつけておくとよいでしょう。
この他にもオリジナルテンプレートを呼び出すための仕掛けとして、
get_template_part 関数が用意されています。
この関数に文字列パラメータを渡すと、[パラメータ文字列].php を
呼び出してくれますので、好きな名前でインクルード用のテンプレートを
用意することもできます。
これによって、各ページでは、相違があるメインコンテンツ部分だけを記述する
だけでよくなりますね。
そして、キモになるのが function.php です。
WordPress テーマ の総合的なコントロールをしたり、
独自関数を記述するファイルになります。
カスタムヘッダーやカスタム背景の利用等も
ここで記述することになりますので、必須と言っていいでしょう。
以下に SmartStyle で必要であると認定した基本ファイル一式を纏めます。
【自作テーマで作成すべき基本テンプレートファイル】
style.css | スタイルシート |
index.php | インデックスページ |
404.php | 404エラー(NotFound)ページ |
archive.php | アーカイブ(一覧)ページ |
search.php | 検索結果(一覧)ページ |
single.php | 個別投稿ページ |
page.php | 個別固定ページ |
home.php | ブログ投稿インデックス(一覧)ページ |
header.php | ヘッダー共通パート |
footer.php | フッター共通パート |
sidebar(-left).php | サイドバー共通パート(左) ※ウィジェット配置用 |
sidebar-right.php | サイドバー共通パート(右) ※ウィジェット配置用 |
function.php | テーマコントロール処理 / 共通処理 |
これら以外にも、SmartStyleでは、拡張のために独自ファイルを
幾つか作成しました。
ですが、かなり偏った拡張のためのファイルですので、
解説の都度触れていきます。
如何でしょうか。かなりダラダラと長い文章になってしまいましたが、
参考になりましたでしょうか?