WordPress类别分页不起作用

时间:2015-05-06 04:10:42

标签: php wordpress pagination

我有两个来自archive.php的自定义帖子类型,一个是archive-slug.php,另一个是category-slug.php。分页工作在archive-slug.php上,但类别-smpg.php上的相同代码甚至都不显示。我对Wordpress和php有些新意,所以我确定我在这里遗漏了一些东西,我只是不知道是什么?

<?php 
// Custom Post Type
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        'post_type' => 'available_dogs',
        'category_name' => 'adopted-dogs',
        'posts_per_page'=> 9,
        'paged'=> $paged
    );
    $the_query = new WP_Query( $args ); ?>
        <?php if ( $the_query->have_posts() ) : ?>
            <?php while ( $the_query->have_posts() ) : $the_query->the_post();     ?>   
            <div class="dog-info-box col-lg-4 col-sm-6 col-xs-12">...</div>  
            <?php endwhile; ?>
            <!-- end of the loop -->
            <?php wp_reset_postdata(); ?>
        <?php else : ?>
            <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
        <?php endif; ?>
    </div>
<?php 
// Get the pagination
fusion_pagination( $pages = '', $range = 2 );
?> 
<?php if( $sidebar_exists == true ): ?>
<?php wp_reset_query(); ?>

4 个答案:

答案 0 :(得分:0)


我想通知您创建文件时“

category-slug.php  : it's an default template.No need to add the query posts.
它将显示其slug被添加到文件中的类别的帖子,如category-slug.php。
这是修改代码。
 if (have_posts() ) :while ( have_posts() ) : the_post();
the_content();//content is going on.
endwhile;
//pagination function
fusion_pagination( $pages = '', $range = 2 );
else : _e( 'Sorry, no posts matched your criteria.' );
endif;

注意事项:1:分页代码应放在while循环之前。
2:在您的代码中,分页代码已经放在endif之后,这就是为什么它不起作用。
感谢你。

答案 1 :(得分:0)

我使用了这段代码并使其正常运行。它不漂亮,但它现在会做。出于什么原因,当我尝试在循环之后使用它时它不起作用。当我在它结束后使用它时它会起作用。

    <?php if ($the_query->max_num_pages > 1) { // check if the max number of    pages is greater than 1  ?>
      <nav class="prev-next-posts">
         <div class="prev-posts-link">
            <?php echo get_next_posts_link( 'Older Entries', $the_query->max_num_pages ); // display older posts link ?>
         </div>
         <div class="next-posts-link">
            <?php echo get_previous_posts_link( 'Newer Entries' ); // display newer posts link ?>
         </div>
      </nav>
    <?php } ?>

答案 2 :(得分:0)

请按照以下步骤操作。 1:请确保您的类别有帖子 2:如果您的类别slug是“test”,那么您的文件名应该是“category-test.php。如果有任何混淆,请告诉我。

3:查看代码并写入文件。

if(have_posts()) :
while(have_posts()): the_post();
the_title();
the_content();
endwhile;
//pagination of wp previous_posts_link( '« Newer Entries' ); next_posts_link( 'Older Entries »', 0 );
endif;

注意:
1:请将此代码放入文件并运行,如果它将成功运行,那么我们将添加设计部分。
2:如果你可以分享网站的网址,那么我也可以提供合适的解决方案,因为我可以看到类别slug等 如果仍然需要问题,请告诉我 感谢。

答案 3 :(得分:0)

我终于修复了同一问题的变体。

此问题发生在类别归档分页中。

最初认为它是在循环内 - 结果我正在处理的主题是将这些过滤器放在一个文件custom.php中,它手动重写了永久链接结构。

add_filter('category_link', 'themename_change_archive_link', 100, 2);
add_action('init', 'themename_archive_rewrite', 50);
由于看起来像conflict with a recent WooCommerce update,所以Pagination不喜欢这样,所以我删除了这些过滤器,使用Custom Permalink插件重写类别永久链接,并且它有效!现在我有一个自定义永久链接结构和功能类别分页。