正在载入...

WordPress 的默认搜索结果是按照文章的发布时间来排序的,现在通过搜索标题和内容相关提高wordpress搜索的准确性。

完整代码如下(将如下代码复制粘贴在wordpress 主题 的 functions.php 文件中):

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;
}
}

上面的代是按照文章的标题的相关性排序,接着按照日志的内容,最后才是日的志修改时间和 ID,提高WordPress 搜索的结果相关性和准确性。

文章来自:水煮鱼

本文链接:

关键词:is_search, WordPress, 互联网, 代码, 搜索引擎, 程序,

(全文完        )

Comments

2 条评论(网友评论:2 条,博主回复:0 条)快速评论

  1. 这个从来还没有注意到呃,不过按时间来排序也有一定的好处吧。。。

  2. 很实用!

你需要 登录 才可以回复.