Это работает только для администраторов - при использовании без прав администратора возвращает в основном последнее сообщение, добавленное для этого типа сообщений:
$ticket_args = array(
'post_type' => 'event_ticket',
'post_status' => array('publish', 'pending'),
'posts_per_page' => 1,
'meta_query' => array(
array(
'key' => '_token',
'value' => $_GET['token'],
),
),
);
$tickets = get_posts($ticket_args);
Это работает для всех ролей:
$ticket_args = array(
'post_type' => 'event_ticket',
'post_status' => array('publish', 'pending'),
'posts_per_page' => 1,
'meta_key' => '_token',
'meta_value' => $_GET['token']
);
$tickets = get_posts($ticket_args);
Больше ясности:
Вывод этих 2 операторов НЕ одинаков. Как администратор, результаты будут такими, как ожидалось - возвращается ОДИНОЧНАЯ запись 'event_ticket', содержащая метаданные '_token', соответствующие параметру строки запроса 'token'. Для администратора, не являющегося администратором, результаты таковы, что возвращается ПОСЛЕДНЯЯ запись 'event_type'.
Это связано с ограничениями или общими разрешениями WP в отношении функции meta_query или у меня что-то не так в аргументах meta_query?