Intereting Posts
Какой код вы используете для генерации текста, чтобы перейти в тег заголовка HTML? неожиданный '$ mm' (T_VARIABLE) в wp-includes / functions.php Как вставить содержимое разных полей MySQL в сообщение? Получить идентификатор страницы категории с или без каких-либо сообщений URL-адреса изображений перестали работать из-за постоянных ссылок? Как добавить окно поиска в single.php? Как программно вставить новый пункт меню? using comments_template () в пользовательском single-portfolio.php Адрес отправителя маски в wp_mail () в WordPress Статическая страница определяется как домашняя, но не как предотвратить отображение определенной категории на панели управления администратора для определенных пользовательских ролей? Использование gettext в wp-login.php не изменит текст «Назад к имени сайта» Отображение тегов сообщения в таблице Как вставить данные с помощью wp cron Как создать резервную копию и обновить сайт до более новой версии?

Невозможно отобразить несколько типов сообщений в одном запросе (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