WordPressのサイト内検索で空白を検索してしまう

タイトル通りのことが先日、起こりました。

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とか出てきちゃったら、大変ですよ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA