get_template_part()で引数を渡す方法

WordPressのカスタマイズの規模が大きくなると、8割~9割は同じようなコード(PHPのプログラム)を何度も書いていることがあります。このようなときは、別ファイルを作成してソースコードを分割し、コードを再利用することにします。
分割した別ファイルは、get_template_part()によって呼び出しますが、このとき、再利用の度合いを高めるために引数を渡したい場合があります。

WordPressCodexには、テンプレートに変数を渡す方法が解説されています。
今回は、一例として、引数aと引数bを渡して、テンプレート側でa+bの足し算を行い、その結果を返す例を紹介します。

コード例

リスト1 get_template_part()で引数を渡す方法

呼び出す側

 $value = array('100','10') ;
 echo 'a='.$value[0].',b='.$value[1] ;
 set_query_var( 'val', $value) ;  -----❶
 get_template_part( 'template-parts/sample/gtp', 'sample1' );
 $sum = get_query_var('sum'); -----❸
 echo 'a+b='.$sum ;

呼び出される側(gtp-sample1.phpの中身)

 $val = get_query_var('val'); -----❷
 $sum = $val[0]+$val[1] ;
 set_query_var( 'sum', $sum);

説明

呼び出す側:set_query_varで引数'var'に配列$valueを指定し、get_template_part()を呼び出します。
❷呼び出される側:get_query_varによって引数を受け取り、計算結果$sumをset_query_varによって引数'sum'として返します。
呼び出す側:get_query_varで引数'sum'を受け取ります。

リスト1 の実行結果

a=100,b=10 a+b=110

この記事を参照している記事

get_template_part()の代わりにclassを呼び出す方法(1)クラスの使い方の基本。2020-05-21

コメントよろしくお願いします。