知人に教えてもらってこのブログにも実装してみたので備忘録。WordPressでサイト内検索を使用した際、テーマにもよりますが通常は件数に関係なく検索結果が一覧化されて表示されます。これを検索結果が1件しかない場合は、一覧ページには移動せずにその該当記事へリダイレクトさせる方法です。
実装には以下をfunctions.php
に記述します。
functions.php
function redirect_to_only_search_post() {
if (is_search()) {
global $wp_query;
if ( $wp_query->post_count == 1 ) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}
add_action( 'template_redirect', 'redirect_to_only_search_post' );
上記を記述後、サイト内検索を使用した際に結果が1件しかない場合はリダイレクトされるのを確認できます。