WordPressの標準検索を無効にしてみた

Pocket

ふとWordpressの管理画面を見ていたらサイト内検索の履歴がおかしいことに気付きました。

よくわからないURLで履歴が埋まっているのです。Google検索のインデックスに登録させるのが目的らしいとのことですが、Google側で対策がされているのかこちらのサイトの知名度の低さかインデックスされてないようです。

でも、このままも気持ちが悪いので対策してみました。

検索結果を404にする

WordPressは検索ボックスをブログ内から削除しても、下記画像のようにブログのURLのあとに「?s=***」と追加することで検索が出来てしまいます。

functions.php へ下記コードを追記します。子テーマがある場合はそちらに追記する方がよいでしょう。

function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'wpb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

このように404ページを表示して検索が出来なくなりました。404.phpも修正して検索ボックスも消した方がいいですね。

ウィジットから検索を非表示

次にウィジットからも検索を非表示にします。同じくfunctions.phpに追記します。

function remove_search_widget() {
    unregister_widget('WP_Widget_Search');
}
add_action( 'widgets_init', 'remove_search_widget' );

これによりウィジットから見えなくなるので間違えて追加することもなくなります。あとは代替としてGoogleカスタム検索を追加して終わりです。

Pocket

コメントを残す

メールアドレスが公開されることはありません。