时间:2014-01-26所属栏目: WordPress教程 来源: 热度:
凡是环境下我们在 WordPress 网站里搜刮一个要害词,默认的功效页面中日记是凭证宣布时刻来排序的。这样纵然我们搜刮到了我们必要的功效,但要想找到最贴合的搜刮功效也如大海捞针一样。我们着实有个步伐可以让搜刮功效凭证相干性分列,这样就能更亲和用户。
打开主题的 functions.php 文件,插入下面这段代码:
// Search results page
if(is_search()){
add_filter('posts_orderby_request', 'search_orderby_filter');
}
function 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_date DESC";
}
虽然这也是相对亲和,事实对搜刮功效的处理赏罚是个大学问,否则为毛baidu相对google要显得略弱者……这段代码只是思量了最简朴的环境,当文章问题含有要害字的时辰给以权重值 2,内容里含有要害字的时辰给以权重值 1,把两个权重值相加往后降序分列。然后才用文章宣布时刻降序作为候补排序要领,仅供参考。