Запросите разное количество постов в разных форматах за один раз

Я хочу вывести 7 последних сообщений о статусе и 5 последних сообщений за один раз (они должны быть отсортированы в одном списке от самого последнего до самого раннего). Но я не понимаю, как написать такой WP_Tax_Query. Я пробовал следующее, и это не сработало как задумано:

$args = array('relation' => 'AND',array('post_format' => 'post-format-status','posts_per_page' => 7,),array('post_format' => 'post-format-aside','posts_per_page' => 5,));$q = new WP_Query($args);if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); the_title(); }wp_reset_postdata();}

Ответы и комментарии:

Это невозможно в одном запросе. Вы не можете устанавливать количество постов на странице для отдельных запросов таксономии.
Вы можете запросить 12 статусов или оставить сообщения вместе:
массив (
    'posts_per_page' => 12,
    'tax_query' => массив (
        массив (
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'term' => array ('post-format-status', 'post-format-aside'),
        ),
    ),
)

Или выполните отдельные запросы с помощью get_posts () с требуемым номером для каждого, объединяя результаты, затем сортируя объединенные результаты по дате:
// Получить статусы.
$ statuses = get_posts (array (
    'число постов' => 7,
    'tax_query' => массив (
        массив (
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'term' => 'post-format-status',
        ),
    ),
));

// Получить в сторону.
$ asides = get_posts (array (
    'numberposts' => 5,
    'tax_query' => массив (
        массив (
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'term' => 'post-format-aside',
        ),
    ),
));

// Слияние результатов.
$ posts = array_merge ($ statuses, $ asides);

// Сортировка результатов путем сравнения дат.
uasort ($ posts, function ($ a, $ b) {
    return strtotime ($ b-> post_date) - strtotime ($ a-> post_date);
});

глобальный пост $;

foreach ($ posts как $ post): setup_postdata ($ post);

endforeach; wp_reset_postdata ();
Создан 07-04-2018 07:44 Jacob Peattie15k41826