Многопроцессор WordPress не возвращается, как ожидалось

Я пытаюсь выполнить объединенный запрос, чтобы получить не более 6 сообщений из типа post сообщения и типа персонализированных сообщений моих events . post запрос основан на том, установлено ли или нет Featured Image, а запрос events основан на том, было ли сообщение имеет значение meta Featured . Все работает за исключением: запрос возвращает только 5 сообщений, и они не сбалансированы в том смысле, что [в зависимости от того, какой пост я устанавливаю как Featured / Add Featured Image] они имеют приоритет друг над другом.

Например: если я добавлю Избранное изображение в сообщение, результаты будут 3 события, 2 сообщения . Если я затем проверю значение Featured meta в типе сообщений о events результаты будут 4 события, 1 сообщение .

Вот код, который я использую для запроса и возврата сообщений:

  <?php $post_types = get_post_types('','names'); $featuredEvents = get_posts(array( 'post_type' => 'events', 'post_status' => 'publish', 'showposts' => 6, 'meta_key' => '_ecmb_featured_event', 'meta_value' => 'on' )); $featuredNews = get_posts(array( 'post_type' => 'post', 'post_status' => 'publish', 'showposts' => 6, 'meta_key' => '_thumbnail_id' )); $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); if( get_post_type() == 'events' ) { ?> This is a Featured Event <?php } elseif (get_post_type() == 'post') { ?> This a post with the Featured Image set <?php } endforeach; wp_reset_query(); ?> 

Может кто-то помочь мне с этим?

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

Благодаря приведенному ниже ответу, я понял это и использовал следующий код:

 $sliderQueryArgs = array( 'posts_per_page' => 6, 'post_type' => array( 'post', 'events' ), 'orderby' => 'post_date', 'meta_query' => array( 'relation' => 'OR', array( 'key' => '_ecmb_featured_event', 'value' => 'on'), array( 'key' => '_thumbnail_id', 'compare' => 'EXISTS') ) ); $sliderPosts = get_posts( $sliderQueryArgs ); 

Solutions Collecting From Web of "Многопроцессор WordPress не возвращается, как ожидалось"

Вам не хватает того, что get_posts() (или WP_Query ) может принимать array() типов сообщений в сингулярном запросе. Дополнительная информация о параметрах типа в кодексе . Приказ по умолчанию будет являться датой публикации.

Затем вы можете указать его, добавив в материал, например, taxonomy_query и т. Д.

Имейте в виду, что вы можете meta_value по meta_value а также назначить несколько аргументов orderby аргумента:

 'orderby' => 'meta_value post_date' 

например.