テンプレートファイルの部品化
テンプレートファイルとは?
テンプレートとは、ウェブ上で WordPressサイトをどのように表示させるかをコントロールするファイルです。
具体的に言うと例えばtwentyfourteenフォルダ内のpngファイルとcssファイル以外のもの全てのことです。
WordPress では、強力なテーマシステムによって、一つのテーマの中にあるテンプレートファイルを、好きなだけ自由に定義できるようになっています。
- Topページと下層ページで共通して使用されるパーツを部品化します。
- ページの分割は必ずしもHTMLタグのキリの良いところで終わる必要なありません。bodyタグの開始部分を「header.php」に入れ、閉じタグ部分を「footer.php」に納めるなどタグの関係性を無視しても最後に張り合わせた時に元に戻れば問題ありません。
index.phpをheader部分とfooter部分、そして必要に応じてsidebarに分割します。
header.php
sidebar.php
footer.php
バラバラにしたパーツを繋げる役目をするのはインクルードタグです。
header.phpを読み込むインクルードタグ
<?php get_header(); ?>
footer.phpを読み込むインクルードタグ
<?php get_footer(); ?>
sidebar.phpを読み込むインクルードタグ
<?php get_sidebar(); ?>
テンプレートタグとは
テンプレートタグはWordPressに何かを実行あるいは取得するように指示するものです。
PHPタグとワードプレス関数を合わせたものです。
例えばbloginfo()もテンプレートタグのひとつです。
<?php bloginfo('name');?>
テンプレートの分割手順
- header.php はindex.php からheader部分にあたる場所を残して後は全部消してheader.phpのファイル名とします。
headerを使い回しするのに都合の良いところを選ぶのがポイントです。index.phpはheader.phpで使用したソースは消します。その代わりに<?php get_header(); ?>
を記述してheader.phpをインクルードします。
- sidebar.php はindex.php からsidebar部分にあたる場所を残して後は全部消してsidebar.phpのファイル名とします。index.phpはsidebar.phpで使用したソースは消します。その代わりに
<?php get_sidebar();?>
を記述してsidebar.phpをインクルードします。
- footer.php はindex.php からfooter部分にあたる場所を残して後は全部消してfooter.phpのファイル名とします。index.phpはfooter.phpで使用したソースは消します。その代わりに
<?php get_footer();?>
を記述してfooter.phpをインクルードします。
インクルードタグの引数を入れる
get_sidebar();に引数を当てはめてみましょう。
例えばget_sidebar(‘top’);と値にtopと指定するとsidebar-top.phpファイルをインクルードするようになります。
sidebarを複数に細分化するときなどに有効な手段です。
この方法はget_header()やget_footer()でも同様に使用できます。
headerとfooterでのお約束
headの終了タグの前に以下のテンプレートタグを入れます。
<?php wp_head(); ?>
bodyの終了タグの前に以下のテンプレートタグを入れます。
<?php wp_footer(); ?>
こららを適切に記述してないと表示やプラグインに不具合がでてきます。
後述のフィルターフックやアクションフックがここに引っかかるように設計されたものが多いからです。