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
暂无评论内容