Запрос постов и пользовательского типа записей с мета-ключом в WordPress
Я пытаюсь запросить пользовательский тип записи ai1ec_event из all-in-one-event-calendar и обычные записи WordPress для слайдера на главной странице. Это работает хорошо.
Теперь я хочу запросить только записи со значением пользовательского поля "teaser", но запрос возвращает только обычные записи, без событий.
<?php
query_posts( array(
'post_type'=>array('post','ai1ec_event'),
'posts_per_page' => 50,
'meta_query' => array(
array(
'key' => 'teaser',
'value' => 'on'
)
)
);
?>
Даже если я уберу параметр типа записи:
<?php
query_posts( array(
'meta_query' => array(
array(
'key' => 'teaser',
'value' => 'on'
)
)
);
?>
запрос возвращает только посты, без событий.

Боюсь, WP_Query не может получить (Записи с произвольным полем) или (ailec_even). Вам придется сначала запросить первый, затем второй и объединить эти массивы. Используйте WP_Query вместо query_posts.
Я только что проверил это на своей локальной установке, и этот код, вызываемый из index.php twentytwelve, работает (выводит запись с заголовком "Hello post" и ai1ec_event с заголовком "Event" - оба с произвольным полем "teaser" со значением "on"):
$events_query = new WP_Query( array('post_type' => array('ai1ec_event', 'post'), 'meta_query' => array( array( 'key' => 'teaser', 'value' => 'on' ) )) );
while ( $events_query->have_posts() ) :
$events_query->the_post();
echo get_the_title() . '<br/>';
endwhile;
Должен сказать, что оба (запись и событие) были созданы пользователем с правами администратора - я проверил код, и там есть обширная часть с пользовательскими возможностями.

Я не думаю, что это сработает. Я сообщил о некорректном поведении. Смотрите исправленный вопрос выше. Сначала я не заметил, но включение запроса по мета-ключу ВСЕГДА возвращает только посты.

Я только что проверил эту задачу на своей локальной установке - внес измененный ответ выше.

Я проверил дважды: у меня возвращаются только посты. В чем может быть причина такого поведения?
