Pagination for a category

时间:2012-11-29 作者:MrThunder

嗨,我有一个页面显示20个特定类别的特色图像和信息,我希望能够有分页,这样我就可以有多个类别的页面。

我该怎么做?我似乎无法让它工作。

任何帮助都将不胜感激

谢谢

<?php get_header(); ?>
<div class="modus-grid">
     <?php query_posts(array(\'category__in\' => array(5), \'posts_per_page\' => 20)); ?>
            <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

                    <?php $currentid = get_the_id(); ?>

                    <div class="grid-box grid-block mod-box width33">

                        <div class="view view-first">                                
                                <?php if (get_the_post_thumbnail($currentid, array(167, 167)) != "") { ?>

                                   <a href="<?php the_permalink(); ?>" /><?php echo get_the_post_thumbnail($currentid, array(300,600)); ?></a>
                                <?php } else { ?> 
                                    <a href="<?php the_permalink(); ?>" /><img src=\'<?php bloginfo(\'template_url\') ?>/images/default.png\' alt=\'Default\'/></a>
                                <?php } ?>

                            <div class="mask">  
                                <h2><a href="<?php the_permalink(); ?>"><?php echo get_the_title($currentid); ?></a></h2>
                                <p><?php echo get_the_excerpt( $post->parent ); ?></p>
                                <a href="<?php the_permalink(); ?>" class="info">Read More...</a>
                            </div>
                        </div> 
                    </div> 

                    <?php
                endwhile;
            endif;

            wp_reset_query();
            ?> 
            <div class="clearfix">
</div>
<?php get_footer(); ?>

2 个回复
SO网友:Chip Bennett

问题的存在是因为您正在使用query_posts(), 而不是通过pre_get_posts.

删除您的query_posts() 从模板文件调用,然后将以下内容添加到函数中。php:

function wpse74325_pre_get_posts( $query ) {
    if ( $query->is_main_query() && is_category( 5 ) ) {
        $query->set( \'posts_per_page\', \'20\' );
    }
}
add_action( \'pre_get_posts\', \'wpse74325_pre_get_posts\' );
此函数将在检索帖子之前正确修改主查询对象,允许WordPress正确分配分页。

SO网友:s_ha_dum

您没有传递任何分页参数。像这样,from the Codex...

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$query = new WP_Query( \'paged=\' . $paged );
请注意,代码使用WP_Queryquery_posts. 不使用query_posts. 这绝不是创建循环的最佳选择。

循环的顶部应该看起来像。。。

<?php 
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$my_query = new WP_Query(array(\'category__in\' => array(5), \'posts_per_page\' => 20,\'paged\'=>$paged)); ?>
    <?php if ($my_query->have_posts()) : while ($my_query->have_posts()) :
         the_post(); ?>
然后是循环的其余部分。

你可能也想要next_posts_linkprevious_posts_link.

结束

相关推荐

如何在wp_Dropdown_Categories中添加“All Categories”条目?

我想让用户按类别搜索帖子。所以我使用wp\\u dropdown\\u categories来构建一个包含所有类别的下拉列表。问题是,我想让他们也将其设置为“所有类别”。那么,如何在下拉列表中添加另一个条目呢?谢谢