-
テンプレートファイルの作成: まず、テーマディレクトリ内にsearch-{post_type}.phpという名前のファイルを作成します。{post_type}は、検索結果を表示する投稿タイプのスラッグです。たとえば、もし投稿タイプのスラッグが"post"であれば、ファイル名はsearch-post.phpとなります。
-
テンプレートファイルのカスタマイズ: 作成したテンプレートファイルに、検索結果ページのデザインや表示内容をカスタマイズするコードを追加します。例えば、以下のようなコードを追加することができます。
<?php
get_header();
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
// 検索結果を表示するコードをここに追加
}
} else {
// 検索結果が見つからなかった場合のコードをここに追加
}
get_footer();
?>
上記の例では、have_posts()関数を使用して検索結果が存在するかどうかを確認し、存在する場合はwhileループ内でthe_post()関数を使用して個々の投稿を表示しています。また、検索結果が見つからなかった場合にはelseブロック内のコードが実行されます。
- テーマのfunctions.phpファイルの編集: テーマのfunctions.phpファイルに以下のコードを追加することで、検索結果ページのテンプレートファイルを適用するように設定します。
function custom_search_template( $template ) {
if ( is_search() ) {
$post_type = get_query_var( 'post_type' );
if ( $post_type ) {
$template = locate_template( array( "search-{$post_type}.php", 'search.php' ) );
}
}
return $template;
}
add_filter( 'template_include', 'custom_search_template' );
上記の例では、is_search()関数を使用して検索結果ページかどうかを確認し、get_query_var()関数を使用して現在の投稿タイプを取得します。その後、locate_template()関数を使用してテンプレートファイルを探し、適用します。