#wordpress
#wordpress
Вопрос:
Необходимо упорядочивать сообщения по дате публикации и по ДНЯМ. Теперь, если использовать порядок по умолчанию:
$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:
Вы можете использовать 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',
);
Комментарии:
1. Отлично! Спасибо!