WordPress — мета-запрос и порядок по дате мета?

У меня есть 3 мета-поля, дата (строка в формате даты), местоположение и консультант.

Я могу вытащить сообщения и упорядочить по полю даты, когда установлен meta_key:

// get posts
$posts = get_posts(array(
'post_type'     => 'event',
'posts_per_page'    => -1,
'meta_key'      => 'start_date',
'orderby'       => 'meta_value_num',
'order'         => 'DESC'
));

Тем не менее, я не смог заставить это работать с более сложным meta_query:

$args = array(
'post_type' => 'uppy_events',
'orderby'       => 'meta_value_num',
'order'         => 'ASC',

'meta_query' => array(
array(
'key' => $key,
'value' => array($value),
'compare' => '>='
)
),
'numberposts' => -1
);

По сути, я хочу вытащить все посты, мета-дата которых больше, чем сегодняшняя дата и порядок, по этим датам.

В качестве примечания — можете ли вы выполнить поиск в meta_query, скажем, по ключу местоположения и по-прежнему ключу даты заказа?

Любая помощь приветствуется … это первый раз, когда я пробовал упорядочивать по мета, и нашел несколько хороших постов, но все еще не могу обернуть голову вокруг этого. ура

1

Решение

K я понял это, поскольку мой пост привел меня к другому хорошему примеру. Закомментированный meta_query — дата больше, чем сегодня. Другой использует другой ключ. Оба работают!

    $today = date("Ymd");

$args = array(
'post_type' => 'uppy_events',
'post_status' => 'publish',
'meta_key' => 'event_date',
'orderby'       => 'meta_value_num',
'order'         => 'ASC',
'meta_query' => array(
/* array(
'key' => 'event_date',
'value' => $today,
'compare' => '>='
) */
array(
'key' => 'event_location',
'value' => 'vancouver',
'compare' => '='
)
),
'numberposts' => -1
);
1

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

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

По вопросам рекламы [email protected]