3列、3个类别、一个存档和分页

时间:2011-06-15 作者:addedlovely

我有三列,每个列显示两篇文章,每个来自不同的类别,每个都是一个新的查询。

这三列显示在其父类别页面上,该页面设置为每页显示6篇文章。

$soundPosts = new WP_Query(\'posts_per_page=2&cat=4&paged=\' . get_query_var( \'paged\' ));
$viewsPosts = new WP_Query(\'posts_per_page=2&cat=5&paged=\' . get_query_var( \'paged\' ));
$wordsPosts = new WP_Query(\'posts_per_page=2&cat=6&paged=\' . get_query_var( \'paged\' ));
目前分页类作品,但不太合适。它正在对主父类别使用分页。

        <div class="navigation">
            <div class="left"><?php previous_posts_link(\'&#60; Previous\') ?></div>
            <div class="right"><?php next_posts_link(\'Next &#62;\',\'\') ?></div>
        </div>
分页类型有效,因为父类别包含帖子,并且设置为显示6篇帖子,但并不总是有效,因为帖子并非总是均匀分布在各个列中。

如何手动构建导航链接,以便它们运行上面的查询,而不是存档的默认分页?以及如何以及在所有记录的末尾使存档返回404页,以便与infinte滚动一起使用。

同样值得注意的是,我知道这一点question / answer, 但不要认为这是一个可接受的解决方案,或者实际上是我目前拥有的相同设置。

非常感谢您的指点!

1 个回复
最合适的回答,由SO网友:addedlovely 整理而成

好的,这就是我的结局,效果很好:

// get paged value.
$paged = get_query_var( \'paged\' );
$maxPages = array();
$max = 0;

// Create the queries
$soundPosts = new WP_Query(\'posts_per_page=1&cat=4&paged=\' . $paged);
$viewsPosts = new WP_Query(\'posts_per_page=1&cat=5&paged=\' . $paged);
$wordsPosts = new WP_Query(\'posts_per_page=1&cat=6&paged=\' . $paged);

// get max number of pages for each query
array_push($maxPages,$soundPosts->max_num_pages);
array_push($maxPages,$viewsPosts->max_num_pages);
array_push($maxPages,$wordsPosts->max_num_pages);

// get the max number of pages from all three.
$max = max($maxPages); 

// If we are out of posts, return 404
if ($paged > $max) {
$wp_query->set_404();
status_header(\'404\');
}

// proceed as normal.
get_header(); 
然后,对于分页链接,只需要从创建的变量中提取一点逻辑来决定是否显示链接。

<?php 
if ($paged > 0 && $paged < $max) { ?>
    <div class="left"><?php previous_posts_link(\'&#60; Previous\') ?></div>
<?php 
}
if ($paged <= $max) { ?>
    <div class="right"><?php next_posts_link(\'Next &#62;\',\'\') ?></div>
<?php } ?>

结束