WordPressのget_template_part関数でデータを渡す

WordPressのテーマ開発で繰り返し使いたいパーツがある場合、テンプレートパーツを作成してget_template_part関数でインクルードします。

全く同じパーツであれば特に問題はないのですが、「ほとんど同じなのに一部のテキストや色だけが異なるため、単純に使い回せない。データを渡して動的にパーツを生成したい。」というケースがあると思います。
テンプレートパーツを複数作成しても実装はできますが、それではコードが冗長になってしまいます。

このような課題を解決するために、get_template_part関数には第3引数が用意されています。
第3引数を指定すると、そのデータをテンプレートパーツ側で使えるようになります。

使用例

footer.phpからcta.phpをインクルードします。
この時、cta.phpで使いたいデータを第3引数に指定します。

$label = '資料請求はこちら';
get_template_part('cta', null, $label);

cta.phpでは$argsという変数でデータを受け取ることができます。

<button><?php echo $args; ?></button>

第3引数には配列やオブジェクトも指定することができます。

$cta_args = array(
  'label'		=> '資料請求はこちら',
  'bg_color'	=> 'red',
);
get_template_part('cta', null, $cta_args);

受け取る変数は必ず$argsになります。
今回は連想配列で指定したので、キーを指定して出力します。

<button style="background-color: <?php echo $args['bg_color']; ?>"><?php echo $args['label']; ?></button>

コメント