タイトル通りのことが先日、起こりました。
WordPressで、サイト内検索の機能を設置したんですが、何も入力していない状態で検索ボタンを押すと、検索結果ページに遷移してしまい、どうでもいい記事が引っかかってきちゃうんです。
WordPress4.0から検索結果の仕様が変わった
だそうです。
http://morilog.com/wordpress/tips/empty_search_redirect/
こちらの記事で教えていただきました。
要するに、WordPress4.0以前は「http://example.com/?s=」では検索ページに遷移せずにとどまっていたものが、遷移するように仕様が変わったみたい。
変わってしまったものは仕方が無いので、解決策としては、「http://example.com/?s=」にアクセスした場合はトップページにリダイレクトする、というもの…
先ほどのMORILOGさんで紹介されていたコードをfunctions.phpに記述して解決しました。(ありがとうございました)
functions.phpにコードを記述
function empty_search_redirect( $wp_query ) { if ( $wp_query->is_main_query() && $wp_query->is_search && ! $wp_query->is_admin ) { $s = $wp_query->get( 's' ); $s = trim( $s ); if ( empty( $s ) ) { wp_safe_redirect( home_url('/') ); exit; } } } add_action( 'parse_query', 'empty_search_redirect' );
みなさんも、最近アップデートしたサイトなどチェックしてみてください。
検索結果にHello Worldとか出てきちゃったら、大変ですよ!