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

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

  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);

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

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

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