WordPress バージョン5.5以上で使用可能
目次
get_template_part関数とは
テンプレートパーツ(ヘッダー、サイドバー、フッターを除きます)をテンプレートへ読み込みます。
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_template_part
以下の関数はWordpressのカスタマイズでは必ず使用していますが、これの任意ファイル名Ver.です。
<?php
get_header(); // header.phpを呼び出す
get_footer(); // footer.phpを呼び出す
get_sidebar(); // sidebar.phpを呼び出す
?>
例えばサイト内で使用する電話番号をテンプレート化したい場合、temp-phoneNum.phpを作成しそこに電話番号のコードを記述、使用したい箇所で呼び出します。
// tmp-phoneNum.phpに記述
<div>000-0000-0000</div>
// 呼び出したい箇所に記述
<?php get_template_part('tmp-phoneNum'); ?>
第三引数を使用した記述方法
get_template_part( string $slug, string $name = null, array $args = array() ):
WordPress Developer Resources


get_template_part() – Function | Developer.WordPress.org
Loads a template part into a template.
第三引数の1つの変数が設定されている場合
// tmp-phoneNum.phpに記述
<div><?php echo $args; ?></div>
// 呼び出したい箇所に記述
<?php
$args = '000-0000-0000'; // 引数を設定
get_template_part('tmp-phoneNum', null, $args); // 第三引数に上記の$argsを設定
?>
→出力結果 <div>000-0000-0000</div>
第三引数に2つの変数が設定されている場合
例えば、サイト内に表示させたい複数の電話番号があり、記述箇所によって使い分けたい場合、引数を使用しない場合2つのテンプレートファイルが必要となります。
// tmp-phoneNum0.phpに記述
<a href="tel:00000000000">000-0000-0000</a>
// tmp-phoneNum1.phpに記述
<a href="tel:00000000000">000-0000-0001</a>
// 呼び出したい箇所にそれぞれ記述
<?php get_template_part('tmp-phoneNum0'); ?>
<?php get_template_part('tmp-phoneNum1'); ?>
上記を第三引数を使用して記述した場合↓
// tmp-phoneNum.phpに記述
<a href="tel:<?php echo $args['link']; ?>"><?php echo $args['phoneNumber']; ?></a>
// 呼び出したい箇所に記述
<?php
$args = ['phoneNumber' => '000-0000-0000', 'link' => '00000000000']; // 引数を設定
get_template_part('tmp-phoneNum', null, $args); // 第三引数に上記の$argsを設定
?>
→出力結果 <a href="tel:00000000000">000-0000-0000</a>
<?php
$args = ['phoneNumber' => '000-0000-0001', 'link' => '00000000001']; // 引数を設定
get_template_part('tmp-phoneNum', null, $args); // 第三引数に上記の$argsを設定
?>
→出力結果 <a href="tel:00000000001">000-0000-0001</a>
分岐もできる
テンプレート内での分岐を、記述箇所から指定することもできます。
// tmp-date.phpに記述
<div>
<?php if($args): // trueの場合 ?>
<time>日付</time>
<?php else: // true以外の場合 ?>
<span>日付なし</span>
<?php endif; ?>
</div>
// 呼び出したい箇所に記述
<?php
$args = true;
get_template_part('tmp-phoneNum', null, $args);
?>
→出力結果 <div><time>日付</time></div>
まとめ
ひとつのテンプレートを、使用箇所によって中身を変更しながら使いまわせるので、記事一覧を呼び出す際やその他いろいろな場面で重宝します。
しっかり押さえておきましょう!
コメント