PHPのコードをパーツ化する方法(1)get_template_part()で引数を渡す方法

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

WordPressCodexには、テンプレートに変数を渡す方法が解説されています。
今回は、一例として、引数taxと引数termを渡して、テンプレート側サブクエリーを実行する例を紹介します。

参考文献

参考記事

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

PHPのコードをパーツ化する方法(2)クラスを使う方法

コード例

事例1:get_template_part()でサブクエリーを呼び出す方法

呼び出す側

$args = array(
	'tax' => 'region',
	'term' => '9789',			
);
set_query_var( 'val', $args) ; 
get_template_part( 'template-parts/sample/content', 'sample' );	

呼び出される側

<?php
//引数を受け取り
		$var = get_query_var('val');
		$par =(object)$var;
//サブクエリー
		$args = array(		
			'post_type' => 'post',
			'tax_query' => array(
				array(
					'taxonomy' => $par->tax,				
					'field' => 'term_id',
					'terms' => $par->term,
				)
			)
		);
		$the_query = new WP_Query($args) ;
//サブループ
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					//表示
					the_title() ;
					echo "<br>\n" ;
			}
		}//endif	
築地(和風スナック)沢の鶴の看板。月島三丁目。
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です