システムエンジニア
Akihiro Shinozaki
2022.03.09 システム
【WordPress】テンプレート作成時の共通化で覚えておくべきポイント
こんにちは。
今回はWordPressでテンプレートを作成する際のパーツ共通化について、覚えておくと良いポイントをご紹介いたします。
ヘッダ・フッタの共通化
よくある共通化のパターンとしては「header.php」「footer.php」を用意して、以下のような構成でページを作成する方法です。
page-sample.php
<?php
// ページ共通のヘッダを読込
get_header();
?>
<section>
※各ページ固有の要素を配置
</section>
<?php
// ページ共通のフッタを読込
get_footer();
?>
「get_header」「get_footer」の関数呼び出しの記述で、対象のページにヘッダおよびフッタの内容がロードされます。
ヘッダ、フッタは基本的にどのページでも同じ内容を表示する為、このような形で作成することが多いかと思います。
ページ共通の部品は別ファイルに切り出す
共通要素がヘッダ、フッタのみであれば上記の構成で事足りますが
実際にサイトを構築するときは、ページの途中でも共通化したい要素が発生するケースがあるかと思います。
例). 最新情報の表示エリア、お問い合わせ用のバナー 等
上記例の「最新情報の表示エリア」をパーツ化する場合、以下のような構成で作成します。
information.php
<ul class="information">
<li>最新情報:1件目</li>
<li>最新情報:2件目</li>
</ul>
page-sample.php
<?php
get_header();
?>
<section>
※各ページ固有の要素を配置
<?php
// 最新情報パーツの読込
get_templete_part('information');
?>
</section>
<?php
get_footer();
?>
get_templete_part(‘information’)を記載したページには「information.php」で記載した内容がロードされます。
複数のページで同じものを表示したい際はパーツ化しておくことで、何らかの修正が入った場合でも個々のページ単位に修正するのではなくまとめて修正ができますね。
<補足>
get_templete_partには第3引数にパラメータを渡すことができる(※WordPress 5.5以降)ので
動的に出力したい要素がある際は以下のような使い方となります。
page-sample.php
<?php
// 最新情報パーツの読込(パラメータ付き)
get_templete_part('information', null, array('foo' => $foo, 'bar' => $bar));
?>
information.php
<?php
// 呼び出し元ページから渡されたパラメータを受け取る
// ※渡されたパラメータは「$args」に格納されている
$foo = $args['foo'];
$bar = $args['bar'];
?>
<ul class="information">
<li>最新情報:<?php echo $foo; ?></li>
<li>最新情報:<?php echo $bar; ?></li>
</ul>
