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

如此把搜索页面的排序结果调整一下就搞定啰!

发表评论

您的电子邮箱地址不会被公开。