WordPress获取文章的上一篇和下一篇

WordPress 提供了两个快捷函数来获取上一篇/下一篇文章,自动生成完整的 a 标签,格式为:<a href="文章链接">文章标题</a>

1
2
3
4
<?php previous_post_link('上一篇:%link'); ?>
完整语法:previous_post_link( $format, $name, $in_same_cat, $excluded_categories = "");
<?php next_post_link('下一篇:%link'); ?>
完整语法:next_post_link($format, $name, $in_same_cat, $excluded_categories = "");

参数介绍:
$format:格式化被显示的字符串,缺省值是”‘? %link”,第二个函数缺省值是”%link ?”。
$name:被显示的字符串,缺省值是上一篇或下一篇的”$title”,也可以设置为其它你想显示的字符串。
$in_same_cat :是否显式同一类别下的文章,缺省值false表示不区分类别。
$excluded_categories:是否排除掉某分类,缺省值不排除 ,多个以英文逗号分隔。
例:

previous_post_link(“%link”,”< 上一篇”,true) //

显示: < 上一篇
使用默认的方式会遇到一个小问题,如果当前文章是最新或者最后一篇,在输出结果时会在上一篇/下一篇 显示当前文章,只需要在输出时加一个判断即可。
Wordpress判断文章是否有上一篇和下一篇

1
2
3
4
5
6
7
8
9
10
<?php
$prev_post = get_previous_post();
if ( ! empty( $prev_post ) ): ?>
<a href="<?php echo get_permalink( $prev_post->ID ); ?>">
<?php echo apply_filters( 'the_title', $prev_post->post_title ); ?>
</a>
<?php else: ?>
<span>没有上一页了</span>
<?php endif;
?>

如果有上一篇:显示上一篇的标题及链接,没有提示:没有上一篇了

1
2
3
4
5
6
7
8
9
10
<?php 
$next_post = get_next_post();
if(!empty($next_post)):?>
<a href="<?php echo get_permalink( $next_post->ID ); ?>">
<?php echo apply_filters( 'the_title', $next_post->post_title ); ?>
</a>
<?php else: ?>
<span>没有下一页了</span>
<?php endif;
?>

如果有下一篇:显示下一篇的标题及链接,没有提示:没有下一篇了