我无法理解甚至诊断为什么我的home.php文件中没有显示分页,这是我在二十七岁儿童主题中创建的。我有3篇博文,我只希望展示一篇,底部有分页。
我正在运行WordPress 4.7.2,根据this文章,我应该使用the_posts_pagination()来显示我的帖子的分页,但没有任何内容出现。我按照here所述设置了自定义查询(将params作为数组而不是查询字符串传递):
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$query = new WP_Query( array( 'posts_per_page' => 1, 'paged' => $paged ) );
有3个帖子,如果我将查询设置为此,那么我会在home.php页面上看到所有这三个帖子:
$query = new WP_Query( array( 'posts_per_page' => 3, 'paged' => $paged ) );
当我将'posts_per_page'设置为1,然后调用the_posts_pagination()时,我只看到第一个帖子,而没有分页。我不明白为什么没有出现分页,因为有更多的页面需要显示。我在WordPress仍然是新手,所以我确定我只是遗漏了一些明显的东西。
以下是我的完整代码供参考:
<?php
get_header();
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$query = new WP_Query( array( 'posts_per_page' => 1, 'paged' => $paged ) );
?>
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
if ( $query->have_posts() ) :
/* Start the Loop */
while ( $query->have_posts() ) : $query->the_post();
the_title('<h1>', '</h1>');
the_content();
endwhile;
the_posts_pagination();
else :
get_template_part( 'template-parts/post/content', 'none' );
endif;
?>
</main><!-- #main -->
</div><!-- #primary -->
</div><!-- .wrap -->
<?php get_footer();
编辑后的编辑
好的,所以看来即使我设置了我想在这里显示的'posts_per_page':
$query = new WP_Query( array( 'posts_per_page' => 1, 'paged' => $paged ) );
Wordpress仍然依赖于 信息中心 - &gt;设置 - &gt;阅读 - &gt;博客页面最多显示 中的设置来确定分页,所以我不得不去那里并设置它。我仍然无法使the_posts_pagination正常工作,但这样做了:
previous_posts_link( ' << Newer Entries ' );
next_posts_link( ' Older Entries >> ', $query->max_num_pages);
答案 0 :(得分:1)
the_posts_pagination()
无法识别您的新查询,但它正在从$GLOBALS['wp_query']
中存储的全局wp_query中读取。
设置&gt;下的博客页面最多显示设置;在管理面板中阅读是posts_per_page
在这里使用的那个。
您可以在this article中找到一些不同的方法来修改默认查询。