我正在开发一个 WordPress 网站,并且创建了一个页面模板,该模板按类别 slug 显示帖子。为此,我为页面创建了一个字段 WP_Catid,并将其设置为与我要从中显示帖子的类别 slug 相同。但是,我只希望每页显示五个帖子,并在这些帖子的底部显示分页链接。如何让分页链接正确显示?
我的代码如下:
<div id="container">
<div id="content" role="main">
<?php
$btpgid=get_queried_object_id();
$btmetanm=get_post_meta( $btpgid, 'WP_Catid','true' );
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'posts_per_page' => 5,
'category_name' => $btmetanm,
'paged' => $paged,
'post_type' => 'post' );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post );
echo "<div style='border:2px groove black; margin-bottom:5px;'><h3 class='btposth'>";
the_title();
echo "</h3><div class='btpostdiv'>";
the_content();
echo "</div></div>";
endforeach;
next_posts_link( 'Older Entries'); //not displaying
previous_posts_link('Newer Entries »'); //not displaying
wp_reset_postdata();
?>
</div><!-- #content -->
</div><!-- #container -->
原文由 B_Troutman 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您需要分页查询,请不要使用
get_posts
。get_posts
如果您要使用不需要分页的自定义查询,则可以完美工作,但是当您需要引入分页时,它确实变得非常复杂。我认为这里最简单和最合适的是使用
WP_Query
来构建您的自定义查询,也就是说, 如果您不能使用pre_get_posts
来更改主查询 以获取您的主查询的所需输出。我确实认为
next_posts_link()
和previous_posts_link()
更适合用于自定义查询,即WP_Query
。但是,您必须记住在使用自定义查询时设置$max_pages
参数,否则您的分页将中断通过一些小的调整,您的查询应该如下所示