我正在使用专门的页面模板来显示帖子列表。我正在使用以下代码:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'paged' => $paged
);
$all_posts = get_posts($args);
?>
<?php foreach ( $all_posts as $post ) : setup_postdata( $post ); ?>
/* the loop */
<?php endforeach; ?>
现在我想在它下面加上“较新的帖子”和“较旧的帖子”链接。 next_posts_link()
和previous_posts_link()
在此处不打印任何内容。如何在此页面上添加这两个链接?
答案 0 :(得分:0)
使用以下代码
<?php next_posts_link( __( '« Older posts' ) ); ?>
<?php previous_posts_link( __( 'Newer posts »' ) ); ?>
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用WP_Query
进行模拟,因为它包含max_num_pages
属性。如果$paged
等于1,则不会打印previous
链接。如果它等于max_num_pages
,我们不会打印next
链接。
链接是基于我们在进行循环之前获取的get_the_permalink()
构建的。您必须调整固定链接结构,检查代码注释。
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$this_page = get_permalink();
$previous = $paged - 1;
$next = $paged + 1;
$args = array(
'posts_per_page' => 5,
'paged' => $paged
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) :
$the_query->the_post();
echo '<h2>' . get_the_title() . '</h2>';
endwhile;
if( $paged != 1 )
{
// DEFAULT PERMALINKS
# echo "<a href='$this_page&paged=$previous'>previous</a>";
// PRETTY PERMALINKS
echo "<a href='{$this_page}page/$previous/'>previous</a>";
}
if( $paged != 1 && $paged != $the_query->max_num_pages )
{
// SEPARATOR
echo ' | ';
}
if( $paged != $the_query->max_num_pages )
{
// DEFAULT PERMALINKS
# echo "<a href='$this_page&paged=$next'>next</a>";
// PRETTY PERMALINKS
echo "<a href='{$this_page}page/$next/'>next</a>";
}
endif;
发现这篇文章Next/Previous Post Navigation Outside of the WordPress Loop虽然没有帮助,但我会留下来作为参考。