WordPress自带了站内搜索的功能,却默认只能按照时间顺序来查找文章。今天就叫大家如何使站内搜索可以按照多重标准来设定搜索结果显示顺序
教程
1、打开你主题文件夹下的「布景函式库 (functions.php)」文件,然后在底部 ?>
前添加下列代码,最后保存一下就可以啦
1 2 3 4 5 6 7 8 9 10 11 12 |
//提高搜索结果准确度开始 add_filter('posts_orderby_request', 'wpjam_search_orderby_filter'); function wpjam_search_orderby_filter($orderby = ''){ if(is_search()){ global $wpdb; $keyword = $wpdb->prepare($_REQUEST['s'],''); return "((CASE WHEN {$wpdb->posts}.post_title LIKE '%{$keyword}%' THEN 2 ELSE 0 END) + (CASE WHEN {$wpdb->posts}.post_content LIKE '%{$keyword}%' THEN 1 ELSE 0 END)) DESC, {$wpdb->posts}.post_modified DESC, {$wpdb->posts}.ID ASC"; }else{ return $orderby; } } //提高搜索结果准确度结束 |
1、文章标题中含有搜索关键字时给予该结果权重「2」
2、文章内容中含有搜索关键字时给予该结果权重「1」
3、通过两个结果的值来排列搜索顺序
4、发表日期作为候补条件
演示
参考
总结
1、这是个很好的提升用户体验的方法
2、有问题可以回复
历史上的今天
2015年:【翻译】十年间人们生活变化图辑(5条评论)