get_template_part関数で第三引数を渡す

WordPress バージョン5.5以上で使用可能

目次

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() ):

第三引数の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>

まとめ

ひとつのテンプレートを、使用箇所によって中身を変更しながら使いまわせるので、記事一覧を呼び出す際やその他いろいろな場面で重宝します。
しっかり押さえておきましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次