Сортировка запроса пользовательских сообщений по ACF Date Picker не работает должным образом?

У меня есть пользовательский тип сообщения «событие», который я пытаюсь отсортировать по дате. И по какой-то причине это не работает. Я в замешательстве, потому что на самом деле я уже сделал это раньше без проблем. Что не так на этот раз?

Первые три строки должны получить месяц, год и состояние, которые назначены странице через настраиваемые поля ACF. (Это отдельно от полей ACF, которые есть у событий.) По сути, я пытаюсь получить события только для этого состояния, месяца и года.

<?php
$thestate = get_field('page_state');
$themonth = get_field('page_month');
$theyear = get_field('page_year');

$meta_query = array(
array(
'key'       => 'event_state',
'value'     => $thestate,
'compare'   => '='
),
array(
'key'       => 'event_month',
'value'     => $themonth,
'compare'   => '='
)
);

$args = array(
'meta_key'          => 'date_of_event',
'order_by'          => 'meta_value_num',
'order'             => 'ASC',
'post_type'         => 'event',
'posts_per_page'    => -1,
'meta_query'        => $meta_query
);

$myposts = get_posts($args);

if($myposts) { ?>

<?php foreach($myposts as $post) { ?>
<?php setup_postdata( $post ); ?>

/*--Code Here--*/<?php wp_reset_postdata(); ?>
<?php } ?>
<?php } ?>

РЕДАКТИРОВАТЬ:
Я разобрался в проблеме. Мне потребовалось слишком много времени, чтобы понять это, но оказалось, что это было вызвано тем, что я использовал ‘order_by’, тогда как мне нужно было использовать ‘orderby’ … Снятие подчеркивания — это все, что нужно было сделанный. Я не уверен, почему это так. ‘order_by’, кажется, работает для других, поэтому я все еще немного сбит с толку, но рад, что мне удалось это исправить.

0

Решение

Ваш order_by использует ‘meta_value_num’, но, вероятно, он должен использовать ‘meta_value’, поскольку ваша дата является строкой. Вы должны проверить, имеет ли сохраненная вами дата формат «Y-m-d», иначе сортировка не будет работать правильно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector