Intereting Posts
Разбиение страницы RSS2 Связанный «пользовательский тип сообщения» с использованием «пользовательской таксономии» Изменить название Metabox Переадресация на страницу через несколько секунд Перевод плагина с использованием рамки redux не работает Страница общедоступного профиля для подписчиков? Великие блоги ресурсов сайта / учебник для разработчиков WordPress? wp_dropdown_categories () скрипты, работающие беспорядочно на боковой панели Как добавить определенную пользователем гиперссылку к «Лучшему изображению» и the_post_thumbnail () Как включить сообщение об ошибке при входе в систему Проблема с различными циклами запросов (и «основной цикл») на странице шаблона шаблона! register_post_status и show_in_admin_all_list Пользовательский метабокс с переменным количеством полей Сохранить номер версии плагина в качестве опции? Создайте категорию с передним коннектором

Невозможно отобразить несколько типов сообщений в одном запросе (WPML WP_Query)

Я уверен, что для этого есть очень простое объяснение, но я застрял. Я просто пытаюсь создать простой, простой элемент последних сообщений на первой странице сайта и по какой-то причине, когда я пытаюсь использовать:

$args = array( 'post_type' => array('post','recipes'), 'posts_per_page' => 4 ); query_posts( $args ); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> ... endwhile; wp_reset_postdata(); 

он не покажет рецепты. Странно то, что если я назову «post» и «page», он отобразит оба, но как только я добавлю «recipes», он просто отображает первый тип, который запрошен, а не рецепты. Я что-то пропустил здесь?

Редактировать:

Обновлено с экземпляром WP_Query вместо query_posts, все еще не работает.

 $argz= array( 'post_type' => array('post','recipes'), 'posts_per_page' => 4 ); $my_query = new WP_Query($argz); 

Все еще не работает. Все еще возвращает правильный запрос var и все, но не отображает оба типа сообщений.

Solutions Collecting From Web of "Невозможно отобразить несколько типов сообщений в одном запросе (WPML WP_Query)"

У меня возникла проблема с запросом на два пользовательских типа сообщений, используя WP_Query. У меня не было проблем с запросом для одного типа или другого в массиве, но не одновременно.

Не работал:

 $args = array( 'post_type' => array('custom_type_1','custom_type_2'), 'posts_per_page' => 4 ); 

Работа:

 $args = array( 'post_type' => array('custom_type_1'), 'posts_per_page' => 4 ); 

Работа:

 $args = array( 'post_type' => array('custom_type_2'), 'posts_per_page' => 4 ); 

Ужасно смущает, если не сказать больше.

Решив проблему, убедитесь, что оба пользовательских типа сообщений имеют флажок «Сделать» Custom Post Type Name «translatable» для WPML. WPML не должен понравиться, если вы попытаетесь запросить два типа сообщений, в которых один можно перевести, а другой – нет.

(Я на WordPress 3.4.1 и WPML 2.5.2 – последний на дату публикации)

  1. Не используйте query_post для вторичных циклов.
    Это всего лишь общая рекомендация «лучшие практики», а не причина вашей проблемы.
  2. Когда вы регистрируете тип сообщения, убедитесь, что 'public' => true
  3. Поместите следующее в шаблон где-нибудь и сообщите результат. Он вернет объект каждого зарегистрированного настраиваемого типа сообщения и проверит, правильно ли вы используете правильное имя, и если для public установлено значение true.

    $post_types = get_post_types( array( '_builtin' => false ), 'object' ); foreach ( $post_types as $post_type ) { var_dump( $post_type ); }

Вау. не уверенный в том, что именно виновник (будет копать дальше), но кажется, что что-то о WPML мешало фактическому запросу SQL запрашивать тип пользовательского сообщения в сочетании со стандартными сообщениями и страницами. Когда я отключил WPML, он сработал. Спасибо за помощь всем – я буду следить за этим вопросом, как только у меня появится более конкретное представление о том, что произошло

Это должно работать для запроса нескольких типов сообщений:

 query_posts('post_type[]=post&post_type[]=page&post_type[]=event'); 

Вы даже можете проверить его прямо в своем браузере,

 example.com/?post_type[]=post&post_type[]=page