Products
GG网络技术分享 2025-03-18 16:04 0
WordPress默认的搜索有很多不足之处,通常只检索文章的内容和标题,不能模糊搜索。
如何才能实现模糊搜索呢?
1,用插件 Relevanssi,有免费和收费,免费的就好了,默认设置不用改,初次使用需要创建一下索引。
Relevanssi通过添加部分匹配结果并按相关性对结果进行排序来改进默认搜索。搜索结果通常在WordPress中按日期排序,并且仅包含完全匹配的结果。
请注意,因为Relevanssi需要创建索引,所以使用Relevanssi可能需要大量(数百兆)的数据库空间(为获得合理的估计,请将wp_posts
数据库表的大小乘以三)。如果托管设置的数据库表空间有限,则使用Relevanssi可能会引起问题。在这些情况下,不建议使用Relevanssi。
2,用代码实现模糊搜索,将以下代码添加到主题的functions.php文件中。
///////////////////修改为模糊搜索功能////////////////////////////add_filter( 'posts_search','wp_custom_search' );
function wp_custom_search($search){
$s=get_query_var('s');
if(!$s)return $search;//非搜索,直接返回。
$s=get_query_var('s');
//分解搜索关键字
$s_arr=mbStrSplit($s,1);
$s='';
foreach($s_arr as $a):
$s.="%".$a;
endforeach;
$search = "AND (bk_posts.post_title LIKE '{$s}%')";
// OR (bk_posts.post_content LIKE '{$s}%')
// AND (bk_posts.post_password = '')";
return $search;
}
function mbStrSplit($string, $len=1) {
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}
///////////////////////////////////////////////////////////////////////////
注意,某些主题可能不支持。
3, Ivory Search
Ivory Search是一个易于使用的高级WordPress搜索插件。它增强了默认的WordPress搜索,还允许您创建新的自定义搜索表单。
使用Ivory Search,您可以创建无限数量的搜索表单,并分别配置每个搜索表单以自定义WordPress搜索并在网站内容上执行不同类型的搜索。
在网站页眉、页脚、侧边栏或小工具区域、导航或菜单上,页面、文章、自定义文章类型或使用其短代码的网站上的任何位置上显示自定义搜索表单。
可以设置模糊搜索,但是不能自动分词,需要手动加空格。比如搜索“Wordpress搜索插件”,应该输入“Wordpress 搜索 插件”,才能搜到关于 “Wordpress” “搜索” “插件” 三个分词的结果。
4, WP Extended Search
WP Extended Search 插件使用最简单,界面也很简洁,虽然也不能自动分词,小编试了多个插件和方法,还是推荐用这款插件。安装启用,设置里将Terms Relation Type由AND改为OR。Demand feedback