【问题标题】:Have I made a mistake with my WordPress pagination?我的 WordPress 分页有误吗?
【发布时间】:2018-03-31 07:06:12
【问题描述】:

我正在处理的网站上的分页不起作用;我真的不知道为什么,因为它与网站中的其他模板相同。我想知道循环是否有问题,也许我在哪里指定了我希望它拉出的类别。

这是我遇到问题的页面:

<div class="container content newspage">
<div class="two_third newsarticles">
<?php /* Start the Loop */ ?>
<?php $catquery = new WP_Query( 'cat=388' ); while($catquery->have_posts()) :  $catquery->the_post(); ?>
<?php get_template_part( 'content-archive', get_post_format() ); ?>
<?php endwhile; ?>
<nav id="nav-below">
<div class="nav-previous">
<?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'anariel' ) ); ?>
</div>
<div class="nav-next">
  <?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;  </span>', 'anariel' ) ); ?>
</div>
</nav>
<!-- end nav-below -->
</div>
<!-- end two_third -->
<div class="sidebar">

    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Default Sidebar') ) : ?>
    <?php endif; ?>

 </div>

</div>
<!-- end container -->
<?php get_footer(); ?>

可以正常工作的模板在这里:

<div class="container content newspage">
<div class="two_third newsarticles">
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if (  $wp_query->max_num_pages > 1 ) : ?>
<nav id="nav-below">
<div class="nav-previous">
  <?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'anariel' ) ); ?>
</div>
<div class="nav-next">
  <?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;  </span>', 'anariel' ) ); ?>
 </div>
 </nav>
 <!-- end nav-below -->
 <?php endif; ?>
 </div>
 <!-- end two_third -->
 <aside>
 <div class="one_third lastcolumn newssidebar">
   <?php get_sidebar(); ?>
 </div>
 </aside>
 </div>
 <!-- end container -->
 <?php get_footer(); ?>

我尝试将其复制到模板中,但没有成功。

【问题讨论】:

    标签: php wordpress pagination


    【解决方案1】:

    当您使用自定义查询时,您必须将页码添加到您的参数中。

    <?php /* Start the Loop */ ?>
    <?php 
        $paged = get_query_var('paged') ? get_query_var('paged') : 1;
        $catquery = new WP_Query( array('cat' => 388, 'paged' => $paged) ); while($catquery->have_posts()) :  $catquery->the_post(); ?>
    

    您还应该将页数传递给get_next_posts_link

    next_posts_link(  __( '<span class="meta-nav">&larr;</span> Older posts', 'anariel' ), $catquery->max_num_pages );
    

    【讨论】:

    • 这确实有效,谢谢。但是,它似乎打破了我的循环。我应该如何添加第一部分?
    • 感谢您的帮助和工作。遗憾的是,当您单击“旧帖子”时,它会重新加载具有相同帖子的页面,而不会检索旧帖子。将研究,看看我是否可以解决它。感谢您的帮助:-)
    • 我通过将“page”更改为“paged”来解决此问题。非常感谢您的帮助 mtinsley :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多