如何在自定义类别页面上实现分页?

时间:2014-10-15 作者:kost

我已经为我的每个类别创建了一个自定义模板页面。我正在使用foreach 循环以获取我的页面中此特定类别的帖子。

if (is_page()) {
    $cat=get_cat_ID($post->post_title); //use page title to get a category ID
    $posts = get_posts ("cat=$cat");
    if ($posts) {
        foreach ($posts as $post):
            setup_postdata($post); 
            the_title();
        endforeach;
    }
}
如何在自定义页面上使用此代码或其他代码对帖子进行分页?

3 个回复
SO网友:Courtney Ivey

使用基于模板层次结构的类别模板时,使用内置循环函数(如分页)要容易得多。

您提到了使用类别ID将帖子加载到自定义模板页面中,但如果您改为根据类别ID命名模板文件,则只需使用默认的WP循环,并包括<?php echo paginate_links(); ?> 显示您要搜索的分页。

正确的类别模板命名w/ID:

category-{ID}.php
或者,如果您希望使用现有的自定义类别模板命名按“前进”,您仍然可以使用paginate_links() 具有$args 与您的查询相对应。

Read More about paginate_links().

SO网友:DINESH BHIMANI

在自定义类别页面中输入此代码,以便正确分配post_type\' => \'post

<?php 
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array( 
    \'prev_text\' >\' Previous\',
    \'post_type\' => \'post\', 
    \'posts_per_page\' => 2, 
    \'paged\' => $paged 
);
$wp_query = new WP_Query($args);

while ( have_posts() ) : the_post(); 

SO网友:krunal sojitra

try this code just change category name

  <?php
            $args = array(
            \'post_type\'=> \'post\',
            \'category_name\'  => \'blog\',
              \'orderby\' => \'post_date\',
              //\'posts_per_page\'=>\'1\'
            \'paged\' => get_query_var(\'paged\')
           );
            query_posts( $args ); 
            while (have_posts()) : the_post(); ?>

         <?php  the_title(); ?>

       <?php endwhile; ?>

<?php // Wordpress Pagination
                $big = 999999999; // need an unlikely integer
                $links = paginate_links( array(
                    \'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
                    \'format\' => \'?paged=%#%\',
                    \'current\' => max( 1, get_query_var(\'paged\') ),
                    \'total\' => $wp_query->max_num_pages,
                    \'prev_text\'    => \'<\',
                    \'next_text\'    => \'>\',
                    \'type\' => \'array\'
                ) );
                if(!empty($links)){ ?>
                <ul class="pagination">
                        <?php

                        foreach($links as $link){
                            ?>
                            <li><?php echo $link; ?></li>
                            <?php
                        }
                        wp_reset_query(); ?>
                    </ul>
                    <?php } ?>
结束

相关推荐

Three Column Loop

我有一个主题,它创建了两列类别,其中包含来自该类别的子帖子。我尝试过在列出两篇帖子后插入的代码,但它不起作用(因为我不知道自己在做什么)。当前php呈现如下:<div class=\"row\"> <div class=\"column col-half\">...</div> <div class=\"column col-half\">...</div> </div> 我希望它呈现为:<di