实在扛不住 google 自定义搜索的速度了,把之前的搜索换回了 wordpress 自带的搜索,但是 wordpress 的默认搜索结果是按照文章的发布时间来排序的,这样的搜索结果的相关性并不强,应该让搜索结果按照内容相关性排序,而不是按照时间或者 id,所以我们可以在当前主题的 functions.php添加如下代码来增强 wordpress 搜索的相关性:
add_filter(‘posts_orderby_request’, ‘wpjam_search_orderby_filter’);
function wpjam_search_orderby_filter($orderby = ‘’){
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”;
}
上面的代码就是使得搜索的结构代码,先按照日志的标题的相关性排序,然后按照日志的内容,最后才是日的志修改时间和 id,这样的修改之后,wordpress 搜索的结果相关性就提高了很多。