この実装、面倒なら代行します
bodyタグの属性だけ違ってそれ以外は同じ、ということがよくあります。
この場合、ほとんどの部分は同じなのに WordPress標準のテンプレートパーツでやろうとすると header.php を属性のパターン分作る必要があります。
これってメンテビリティ低いですよね。header.php は一つにしておきたい。
同様に、ほんの一部だけ違うだけで他は全部同じ、というときに自作のテンプレートパーツを作ってWordPressに読み込ませたいというケースは結構あって、今回はその方法のご紹介です。
結論から言うと、WordPressにはそれ用の関数があります。
例として、自作のテンプレート名を top_inc.php として head_incフォルダに格納する場合。
top_inc.php はたとえば以下のような記述になります。
top_inc.php内で headタグ内を記述した header.php をインクルードしてます。
<?php get_header(); ?> <body id="top"> <header id="global"> <!-- ヘッダー部記述 --> </header>
そしてこの top_inc.php を ページテンプレートの page.php でインクルードするには、get_template_part という関数を使います。
<?php get_template_part( 'head_inc/top_inc' ); ?> <?php while ( have_posts() ) : the_post();?> <?php the_content(); ?> <?php endwhile; // end of the loop. ?> <?php get_footer(); ?>
テンプレートファイルをフォルダ内に格納しても、パラメータにディレクトリを記述すれば呼び出せます。
こんな感じで top_inc.php のようなテンプレートパーツを複数用意します。
あとは page.php 内で条件分岐を使って呼び出すテンプレートパーツを切り替えれば、header.php と page.php は一つで済みます。
のちのちのメンテナンスを考えれば共通部は一元管理しておきたいですからね。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。