Wordpress Custom цикл с двумя типами постов с разным количеством - PullRequest
0 голосов
/ 19 сентября 2010

У меня есть категория имен «заметки», мне нужно на каждой странице цикла отображать до 10 заметок и до 4 обычных сообщений.

Они оба должны быть заказаны по дате.

т.е. Я опубликовал 1 заметку note A 1 час назад и другую заметку note b 5 часов назад. Я также опубликовал сообщения post A и post B 2 часа назад. в моем цикле я хочу видеть note A, post A, post B, note B.

Надеюсь, это достаточно ясно.

Я пытаюсь сделать это с помощью двух пользовательских WP_Queries, но мне тяжело с ними из-за глобального $post.

Любая помощь подойдет! Спасибо

1 Ответ

0 голосов
/ 19 сентября 2010

Ну, если кому-то интересно, вот как я это сделал:

<?php
function elis_sortbydate ($a, $b) {
$time_a = strtotime($a->post_date);
$time_b = strtotime($b->post_date);
if ($time_a == $time_b) return 0;
return ($time_a > $time_b) ? -1 : 1;
}
$query = array_merge(array('cat' => 67, 'posts_per_page=10'), $wp_query->query);
    $notes_query = new WP_Query($query);

    $query = array_merge(array('cat' => -67, 'posts_per_page=4'), $wp_query->query);
    $posts_query = new WP_Query($query);
    if ($notes_query->have_posts() and $posts_query->have_posts()) {
        $all_posts = array_merge($notes_query->posts, $posts_query->posts);
        usort($all_posts, "elis_sortbydate");
        foreach ($all_posts as $post) { ... }
            }

результирующий массив $all_posts отсортирован по дате (от высокой к низкой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...