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>
コメント