「製品」や「ニュース」といった投稿タイプがあり、各投稿ページやアーカイブページから検索した時に、検索結果を異なるテンプレートで表示させる方法のメモ。
カスタム投稿タイプ毎に検索結果を分岐させるコード
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; }