WordPress自帶了站內搜尋的功能,卻默認只能按照時間順序來查找文章。今天就叫大家如何使站內搜尋可以按照多重標準來設定搜尋結果顯示順序
教程
1、打開你主題文件夾下的「佈景函式庫 (functions.php)」文件,然後在底部 ?>
前添加下列代碼,最後保存一下就可以啦
1 2 3 4 5 6 7 8 9 10 11 12 |
//提高搜索結果準確度開始 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; } } //提高搜索結果準確度結束 |
1、文章標題中含有搜索關鍵字時給予該結果權重「2」
2、文章內容中含有搜索關鍵字時給予該結果權重「1」
3、通過兩個結果的值來排列搜索順序
4、發表日期作為候補條件
演示
參考
總結
1、這是個很好的提升用戶體驗的方法
2、有問題可以回覆
历史上的今天
2015年:【翻譯】十年間人們生活變化圖輯(5条评论)