Порядок постов по дате публикации с использованием WP_Query, исключая год - PullRequest
0 голосов
/ 11 марта 2019

Нужно упорядочить посты по дате публикации и упорядочить посты по ДНЮ. Теперь, если используется порядок по умолчанию:

            $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

1 Ответ

1 голос
/ 13 марта 2019

Вы можете использовать posts_orderby для фильтрации предложения ORDER BY.

Это будет тема functions.php file:

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',
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...