WordPress默認(rèn)的搜索結(jié)果按照文章的發(fā)布時(shí)間來(lái)排序,這樣使我們無(wú)法搜索到最對(duì)自己口味的文章,其實(shí)有個(gè)辦法可以讓搜索結(jié)果按照相關(guān)性排列。
打開(kāi)主題的 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";
}
當(dāng)然,這段代碼只是考慮了最簡(jiǎn)單的情況,當(dāng)文章標(biāo)題含有關(guān)鍵字的時(shí)候給予權(quán)重值 2,內(nèi)容里含有關(guān)鍵字的時(shí)候給予權(quán)重值 1,把兩個(gè)權(quán)重值相加以后降序排列。然后才用文章發(fā)布時(shí)間降序作為候補(bǔ)排序方法。
根據(jù)我的測(cè)試,采用這種排序方法獲得的搜索結(jié)果比默認(rèn)的排序好多了。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄