EZ-SPARROW > カスタム投稿タイプ毎に検索結果を分岐させる方法

カスタム投稿タイプ毎に検索結果を分岐させる方法

December 23, 2015

「製品」や「ニュース」といった投稿タイプがあり、各投稿ページやアーカイブページから検索した時に、検索結果を異なるテンプレートで表示させる方法のメモ。

カスタム投稿タイプ毎に検索結果を分岐させるコード

スポンサーサイト

function.php に以下のコードを追記し、search-投稿タイプ.phpのファイルを用意することで分岐可能。

// テンプレート読み込みフィルターをカスタマイズする
add_filter('template_include','custom_search_template');
function custom_search_template($template){
	// 検索結果の時
	if ( is_search() ) {
		// 表示する投稿タイプを取得する
		$post_types = get_query_var('post_type');
		// search-{$post_type}.php の読み込みルールを追加する
		foreach ( (array) $post_types as $post_type )
			$templates[] = "search-{$post_type}.php";
		$templates[] = 'search.php';
		$template = get_query_template('search',$templates);
	}
	return $template;
}

スポンサーサイト

RELATED POSTS