Для сортировки записей в WordPress по дате, вы можете использовать функцию get_posts()
вместе с параметром orderby
. Чтобы записи отсортировались по возрастанию даты, вы должны задать значение 'date'
для параметра orderby
. Однако, по умолчанию, записи без даты будут показываться перед записями с заполненной датой.
Чтобы изменить этот порядок и отсортировать записи сначала по заполненной дате, а затем по записям без даты, вы можете использовать следующий код:
$args = array( 'post_type' => 'post', // тип записи 'orderby' => 'meta_value_num date', // сортировка по значению мета-поля и дате 'meta_key' => 'your_meta_key', // ключ мета-поля 'order' => 'ASC' // порядок сортировки (возрастание) ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // здесь выводите записи } wp_reset_postdata(); } else { // если записей нет }
В этом примере мы используем параметр orderby
для сортировки по значению мета-поля и дате. meta_key
- это ключ мета-поля, которое должно быть заполнено с датой. Здесь вы должны заменить 'your_meta_key'
на ключ мета-поля, соответствующий вашему случаю. Если вы не используете мета-поле, чтобы хранить дату, вы можете использовать любое другое поле с датой, например 'post_date'
.
Затем мы создаем новый экземпляр класса WP_Query
с передачей в него параметров, и в цикле выводим записи. После завершения цикла необходимо вызвать wp_reset_postdata()
, чтобы сбросить запрос и вернуться к обычному циклу WordPress.
Если необходимо изменить порядок сортировки, замените 'ASC'
на 'DESC'
.
Обратите внимание, что этот код предполагает, что у вас уже есть записи с заполненными и пустыми датами. Если вы только начинаете использовать WordPress и у вас нет записей, то нужно сначала создать такие записи.