[WordPress] 搜尋結果頁按照時間最新到最舊排序

本篇文章更新時間:2019/11/18
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


針對頁面結果排序的需求不少,自行客製化頁面的排序都是看當下怎麼寫。至於其他系統頁面像是「搜尋結果頁」就有兩種做法:

  1. 接手自己寫過(繼承頁面)
  2. 套 Hook 機制控制

這答案對我來說肯定是 2 ,套過 Hook 來處理就好。避免把頁面繼承過來重新改寫這麼複雜!

主要是使用 posts_orderby 這個 Filter。

範例如下:

function mxp_custom_search_results_order( $orderby, $query ){
    global $wpdb;
    if(is_search()){
        $orderby =  "{$wpdb->prefix}posts.post_date DESC";
    }
    return  $orderby;
}
add_filter('posts_orderby','mxp_custom_search_results_order',11,2);

如此把搜尋頁面的排序結果調整一下就搞定囉!


Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon