WordPress:検索結果が1件の場合は該当記事へリダイレクトさせる方法

WordPress:検索結果が1件の場合は該当記事へリダイレクトさせる方法

知人に教えてもらってこのブログにも実装してみたので備忘録。
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件しかない場合はリダイレクトされるのを確認できます。

Close the search window,
please press close button or esc key.