需要按发布日期订购商品,并按DAY订购商品。 现在,如果使用默认顺序:
$args = array (
'post_type' => 'post',
'monthnum' => '1',
'orderby' => 'date',
'order' => 'ASC',
'posts_per_page' => '-1'
);
我们已按年份将帖子排序为:
21.01。 2016
03.01。 2017
16.01。 2018
....
但是只需要按天订购:
03 .01.2017
16 .01.2018
21 .01.2016
答案 0 :(得分:1)
您可以使用posts_orderby
来过滤ORDER BY
子句。
这将进入主题functions.php
文件:
function posts_orderby_day( $sql, $query ) {
if ( 'day' === $query->get( 'orderby' ) ) {
global $wpdb;
$order = $query->get( 'order' );
$sql = "DAY( {$wpdb->posts}.post_date ) $order";
}
return $sql;
}
add_filter( 'posts_orderby', 'posts_orderby_day', 10, 2 );
然后在您的$args
中,将orderby
设置为day
:
$args = array (
'post_type' => 'post',
'monthnum' => '1',
'orderby' => 'day', // set to "day"
'order' => 'ASC',
'posts_per_page' => '-1',
);