WordPress:検索結果表示のURLを変更する方法

WordPress:検索結果表示のURLを変更する方法

WordPressで検索を行なった際の結果表示時URLを任意のものに変更する方法です。

WordPressで検索を行なった際、デフォルトでは検索結果を表示するページでは下記のように?sを用いたパラメータがついたURLになります。

http://example.com/?s=検索キーワード

この?s=の箇所をfunctions.phpに下記のように記述することで任意のものに変更することができ、wp_safe_redirect()を用いて任意のURLにリダイレクトするようにします。

functions.php

add_action( 'template_redirect', 'nxw_change_search_result_url' );
function nxw_change_search_result_url() {
  if ( is_search() && ! empty( $_GET['s'] ) ) {
    wp_safe_redirect( home_url( '/search/' ) . urlencode( get_query_var( 's' ) ) );
    exit();
  }
}

この場合は?s=/search/に変更するもので、記述後に検索を試すと検索結果を表示するページが下記のようなURLになるのを確認できます。

http://example.com/search/検索キーワード

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