🔍

WordPressで特定の検索ワードを置き換える

2023/01/16に公開

WordPress管理画面の投稿一覧で、検索が行われたとき、特定の検索ワードを別の検索ワードに置き換えて一覧取得するための記述。

今回管理画面にのみに限定しましたが、分岐を変えれば表側にも対応できると思います。

【補足】
今回MW WP FORMの問い合わせ一覧表示において、問い合わせに関する状態ステータスが標準で用意されているものの、そのステータスで絞り込んで未対応のものだけ表示させることが不可だったため、カスタマイズを行いました。

function search_word_replace($query_object)
{
    if ($query_object->is_main_query() && $query_object->is_search && $query_object->is_admin) {
        $search_query = $query_object->query['s'];

        $replace_list = [
            ['未対応', 'not-supported'],
            ['保留', 'reservation'],
            ['対応済み', 'supported']
        ];

        foreach ($replace_list as $vals) {
            $search_query = str_replace($vals[0], $vals[1], $search_query);
        }

        if ($search_query) {
            $query_object->set('s', $search_query);
        }
    }
}
add_action('parse_query', 'search_word_replace');

Discussion