鉴于大家对网络知识十分关注,我们编辑小组在此为大家搜集整理了“WordPress博客搜索结果按照相关性排序”一文,供大家参考学习!
WordPress默认的搜索结果按照文章的发布时间来排序,这样使我们无法搜索到最对自己口味的文章,其实有个办法可以让搜索结果按照相关性排列。
打开主题的 functions.php 文件,插入下面这段代码:
if(is_search()){
add_filter(''posts_orderby_request'', ''search_orderby_filter'');
}
function search_orderby_filter($orderby = ''''){
global $wpdb;
$keyword = $wpdb->prepare(WordPress博客搜索结果按照相关性排序_网学 网学推荐
免费论文
原创论文
文章排行榜
· 理解防火墙 屏蔽外界攻击 · 安装防火墙的十二个注意事项 · 企业中使用无线局域网如何进行安全 · 安装防火墙注意事项 · Cisco(思科)路由器上如何防止DDoS · 设定路由访存表防止黑客对防火墙发 · IP网络安全管理系统探讨 · 全面了解交换机漏洞 保护网络核心 · 层层设防保护VoIP安全 抵御隔墙之 · 简述常见黑客入侵方法以及工具防范 · 入侵检测(IDS)存在的问题及发展趋势 · 浅析防火墙与路由器的安全配置 · 实例讲解Oracle监听口令及监听器安 · 部署网络防火墙策略的十六条守则 · 部署网络防火墙策略 · 企业可轻松避免的十大安全地雷 · 计算机不能进安全模式的解决办法 · 无法格式化的U盘修复方法 REQUEST[''s'']);版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号
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,把两个权重值相加以后降序排列。然后才用文章发布时间降序作为候补排序方法。
根据我的测试,采用这种排序方法获得的搜索结果比默认的排序好多了。
Wordpress下载:
本文转自:http://www.codecto.com/2012/01/wordpress-search-results-order-by-relevance/