源码多多 CMS教程 Wordpress教程 查看内容

WordPress博客搜索结果按照相关性排序

2019-5-15 23:47| 发布者: lshj456| 查看: 76| 评论: 0

摘要:   WordPress默认的搜刮效果按照文章的发布时间来排序,如许使昨们无法搜索到最对本身口胃的文章,实在有个办法可以让搜索结果按照相干性分列。   打开主题的 functions.php 文件,插入下面这段代码: if(is_sear ...

  WordPress默认的搜刮效果按照文章的发布时间来排序,如许使昨们无法搜索到最对本身口胃的文章,实在有个办法可以让搜索结果按照相干性分列。

  打开主题的 functions.php 文件,插入下面这段代码:

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

  固然,这段代码只是思量了最简朴的环境,当文章标题含有关键字的时间给予权重值 2,内容里含有关键字的时候给予权重值 1,把两个权重值相加以后降序排列。然后才用文章发布时间降序作为候补排序方法。

  根据我的测试,接纳这种排序方法得到的搜索结果比默认的排序很多多少了。


鲜花

握手

雷人

路过

鸡蛋

最新评论