HOMEBLOG ⟩ WordPress サイト内検索の無効化

WordPress サイト内検索の無効化

WordPressを使用する際、ブログとしてではなくwebサイトとしてサイトを設置する場合も多いと思います。
サイト内検索を利用しない場合は、悪質なアクセスを防ぐためにも検索の無効化を行った方がいいかもしれません。

検索を無効化するコード

WordPressのサイト内検索は

https://hogehoge.com/?s=検索ワード 

のように「?s=検索ワード」をつけると検索結果を表示することができます。

サイト内で検索機能を使用しないのであれば、下記コードをfunction.phpに記述することで、サイト内検索が行われた場合、404ページへリダイレクトできるようになります。


function disable_search($query, $error = true)
{
    if (is_search() && !is_admin()) {
        $query->is_search = false;
        $query->query_vars[s] = false;
        $query->query[s] = false;

        // to error

        if ($error == true) $query->is_404 = true;
    }
}

add_action('parse_query', 'disable_search');
add_filter('get_search_form', function(){ return null; });


参考:WordPress – Disable Search Function