У меня есть 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, скажем, по ключу местоположения и по-прежнему ключу даты заказа?
Любая помощь приветствуется … это первый раз, когда я пробовал упорядочивать по мета, и нашел несколько хороших постов, но все еще не могу обернуть голову вокруг этого. ура
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
);
Других решений пока нет …