Intereting Posts
Исключить конкретный срок поиска Уведомлять пользователей, когда публикуется новое сообщение, исходя из их предпочтений Контактная форма value = "адрес электронной почты" не работает Изменение CSS API-интерфейса Customizer Как сделать отдых APi с wordpress Планировщик в шаблонах WordPress Как попасть в определенную позицию в wp_query? Предварительное заполнение редактора Page / Post Content с помощью HTML-фрагментов? Удалите текст и измените тег html с помощью JQuery Добавление сообщений WordPress с использованием phpmyadmin Не удалось войти в новый пользовательский домен на многопользовательском? wordpress multisite … собрать все сообщения в основном блоге – исключить категорию? Отправить электронное письмо с активацией пользователя при программном создании пользователя Ограничение длины Excerpt не работает для Sticky Posts Как использовать внешний интерфейс с плагином

Попытка объединить несколько запросов WordPress

Я пытаюсь запросить несколько типов сообщений и мета значений в WordPress … запрос пытается получить типы сообщений о event с помощью признанного мета-ключа, а также типы post post с установленным набором изображений .

Я использую код ниже, основываясь на том, что я нашел на форумах WordPress . По существу, предполагается объединить два запроса, захватить идентификаторы сообщений, а затем подготовить данные сообщения.

 <?php $post_types = get_post_types('events',''); $featuredEvents = get_posts(array( 'post_type' => $post_types, 'post_status' => 'publish', 'showposts' => 5, 'meta_key' => '_ecmb_featured_event', 'meta_value' => 'on' )); $featuredNews = get_posts(array( 'post_type' => $post_types, 'post_status' => 'publish', 'showposts' => 5, 'meta_query' => array( array( 'key' => '_thumbnail_id', 'compare' => 'EXISTS' ) ) )); $mergedPosts = array_merge( $featuredEvents, $featuredNews ); $postIDs = array(); foreach( $mergedPosts as $item ) { $postIDs[] = $item->ID; } $uniquePosts = array_unique($postIDs); $posts = get_posts(array( 'post__in' => $uniquePosts, 'post_type' => $post_types, 'post_status' => 'publish', )); foreach( $posts as $post ) : setup_postdata($post); ?> <?php $post_types = get_post_types('events','post'); $featuredEvents = get_posts(array( 'post_type' => $post_types, 'post_status' => 'publish', 'showposts' => 5, 'meta_key' => '_ecmb_featured_event', 'meta_value' => 'on' )); $featuredNews = get_posts(array( 'post_type' => $post_types, 'post_status' => 'publish', 'showposts' => 5, 'meta_query' => array( array( 'key' => '_thumbnail_id', 'compare' => 'EXISTS' ) ) )); $mergedPosts = array_merge( $featuredEvents, $featuredNews ); $postIDs = array(); foreach( $mergedPosts as $item ) { $postIDs[] = $item->ID; } $uniquePosts = array_unique($postIDs); $posts = get_posts(array( 'post__in' => $uniquePosts, 'post_type' => $post_types, 'post_status' => 'publish', )); foreach( $posts as $post ) : setup_postdata($post); ?> <?php if( get_post_type() == 'events' ) { ?> this is featured event <?php } elseif (get_post_type() == 'post') { ?> this is a featured post <?php } endforeach; wp_reset_query(); ?> 

Проблема в том, что это возвращает 1) только типы post post, и 2) он выдает следующую ошибку для каждого типа post post:

Warning: Invalid argument supplied for foreach() in /MYDIR/wp-includes/functions.php on line 2688

Кто-нибудь будет достаточно любезен, чтобы указать мне в правильном направлении?