WordPress特定关键词精准搜索

WordPress在搜索时,会自动分词,将空格、加号、%20作为分割,比如我们搜索“150 cm”其实是搜索包含“150”和“cm”的内容,可能就会导致搜索不准确。

可以使用钩子进行精准搜索,防止分词的情况发生,举个例子,我通过下方的代码,就能在搜索时前面两位是数字,后面是cm的搜索进行精准搜索:

add_action('pre_get_posts', function($query){
    if ($query->is_search && !is_admin()) {
        //$query->set('post_type', 'product');
                // 获取搜索词
        $search_query = $query->get('s');

        // 如果搜索词是你想要搜索的特定词汇,就不进行分词
        $first_two_chars = substr($search_query, 0, 2);
        $last_two_chars = substr($search_query, -2);
        
        // 判断前两个字符是否是数字,最后两个是厘米单位
        if (is_numeric($first_two_chars) and ($last_two_chars === "cm" || $last_two_chars === "センチ")) {
            $query->set('exact', true); // 设置精确搜索
            $query->set('sentence', true); // 设置搜索整个句子
        }
    }
});
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容