Pagination in category

时间:2013-05-30 作者:Johan

Updated: I have 50 categories and i wants to show each 5 category on one page and next 5 on next page and next 5 on next page. and so on. with pagination.

我在WordPress网站上有50个类别。我想在每一页上显示五个类别,用10篇文章分页。我已经尝试过了,但分页并没有产生效果。

<?php 
    // get all the categories from the database
    $cats = get_categories();
    // loop through the categries
    foreach ($cats as $cat) {
    // setup the cateogory ID
    $cat_id= $cat->term_id;
    // Make a header for the cateogry
    ?>
        <div class="cats-by-2">
            <div class="cat-posts-left">
                <h2 class="feat-title"><span><a href=""><?php echo \'<h2>\'.$cat->name.\'</h2>\'; ?></a></span></h2>
                    <div class="posts-by-3">
                <?php
                // create a custom wordpress query
                query_posts("cat=$cat_id");
                $count = 1;

                if (have_posts()) : while (have_posts()) : the_post(); ?>

                    <div class="post-wrap<?php if ($count%3 == 0) { ?> right<?php } ?>">

                        <div <?php post_class(); ?> id="post-main-<?php the_ID(); ?>">

                        <div class="entry clearfix">

                            <h2 class="post-title"><a href="<?php the_permalink() ?>" rel="<?php _e("bookmark", "solostream"); ?>" title="<?php _e("Permanent Link to", "solostream"); ?> <?php the_title(); ?>"><?php the_title(); ?></a></h2>
                        </div>
                        <?php include (TEMPLATEPATH . "/postinfo.php"); ?>
                    </div>
                </div>
            <?php if ( $count%3 == 0 ) { ?>
                <div class="post-clear"></div>
<?php } ?>

                    <?php $count = $count + 1 ?>
                <?php endwhile; endif;
                // done our wordpress loop. Will start again for each category ?>

            </div></div>

        </div>
<?php } // done the foreach statement ?>

1 个回复
SO网友:s_ha_dum

首先,不要使用query_posts.

代码中没有分页函数。如果你想分页工作,这是一个大问题query_posts (您不应该使用)参数next_posts_link 如果没有复杂的筛选,可能对您的情况无效,因为这些依赖于主查询,而您正在为该查询以外的内容分页

我真的不明白这段代码是如何尝试实现您所描述的功能的,但这里有一个提纲,可以帮助您朝着正确的方向开始。我没有做任何努力来复制您需要的标记。您应该能够自己将其应用到循环中。

// set pagination
$page = (!empty($_GET[\'catp\'])) ? $_GET[\'catp\'] : 1; 
// pull catagories
$cats = get_categories();
// break them into blocks of 5  
$cats = array_chunk($cats,5); 
// grab the five category IDs we need for the query 
$ids = wp_list_pluck($cats[$page - 1],\'term_id\');
// query for the posts in those categories
$args = array(
  \'category__in\' => $ids,
  \'ignore_sticky_posts\' => true
);
$incats = new WP_Query($args);
// Minimal Loop; proof of concept only
if ($incats->have_posts()) {
  while ($incats->have_posts()) {
    $incats->the_post();
    the_title();
    echo \'<br/>\';
  }
}
// paginate
$page_args = array(
    \'base\'         => \'%_%\',
    \'format\'       => \'?catp=%#%\',
    \'total\'        => count($cats),
    \'current\'      => $page,
    \'show_all\'     => False,
    \'end_size\'     => 1,
    \'mid_size\'     => 2,
    \'prev_next\'    => True,
    \'prev_text\'    => __(\'« Previous\'),
    \'next_text\'    => __(\'Next »\'),
    \'type\'         => \'plain\',
);
echo paginate_links($page_args);

结束

相关推荐

Categories to A News Page

我正在尝试使用类别来让我的所有帖子(在类别新闻中)转到我网站的新闻页面。我用一些帖子和一个“分类新闻”创建了“新闻”类别。从类别复制的php文件。php,但我不知道如何让帖子转到新闻页面。我试着从不同的论坛上模仿那些试图做类似事情的人的步骤,但我没有成功地复制他们。如果我转到我的页面。我可以在那里看到我的帖子。但我想做的是转到我的页面。com/news和类别将在那里。有人知道我需要采取什么进一步的措施才能使这项工作正常进行吗?谢谢西亚兰