wordpress上一篇下一篇函数参数详解

很多wordpress主题都加入上一篇下一篇这个功能,一般的应用的代码就是这样的:

<?php previous_post_link('%link'); ?>
<?php next_post_link('%link'); ?>

他们输出的html是这样的形式:

<a href="上一篇文章链接地址" rel="prev">上一篇文章标题</a>
<a href="下一篇文章链接地址" rel="next">下一篇文章标题</a>

只是在页尾显示上一篇下一篇功能的话,配合CSS,这个就够用了,但我们很多时候需要一些扩展功能,比喻说同分类下的下一篇文章、不显示文章标题而只是提取链接,自定义瞄点文字,其实这些功能还是有很多人用到的,下面来说下这两个函数详细的参数设置,他们的原始形式是这样的:

<?php previous_post_link($format, $link, $in_same_cat = false, $excluded_categories = ''); ?>
<?php next_post_link($format, $link, $in_same_cat = false, $excluded_categories = ''); ?>

$format:格式化被显示的字符串,上一篇函数缺省值是”‘« %link”,下一篇函数缺省值是”%link »”。
$link:被显示的字符串,缺省值是上一篇或下一篇的”$title”,也可以设置为其它你想显示的字符串,就是设置瞄点文字的地方。
$in_same_cat :表示是显示是不是只显示同一分类下的文章,缺省值false表示显示所有分类下的文章,可以写true,表示只显示当前文章分类下的文章。

$excluded_categories:表示在显示上一篇或下一篇时是否排除掉某分类,缺省不排除,如果排除,把要排除的分类的ID列在此处,以英文逗号分隔。

为了防止在最后一篇文章和第一篇文章出现空白,给这两个函数调用加上一个判断,那么就是这样:

<?php if (get_previous_post()) { previous_post_link('上一篇: %link','%title',true);} else { echo "没有了,已经是最后文章";} ?>   
<?php if (get_next_post()) { next_post_link('上一篇: %link','%title',true);} else { echo "没有了,已经是最新文章";} ?>

以上代码还加上了只显示当前分类下的文章参数true,就可以在当前分类切换到上一篇下一篇了。

7条评论

  1. 其实这个对于懂得人没意义,不懂的人看不懂

    对于没基础的还是要一步步怎么弄得写出来。。

  2. wordpress提供的显示上一篇、下一篇文章的函数代码是按照发布顺序调用的,但如果不同分类是文章差异性比较大的话,这样显示稍有不合适,让文章页显示同分类下的上一篇、下一篇文章才是正道,wordpress是强大的,总能满足用户的想法,通过搜索找到了相关的函数代码。 默认直接调用的代码 < ?php previous_post_link('上一篇: %link') ?> < ?php next_post_link('下一篇: %link') ?> 当文章处于首篇或末篇时,会显示空白,但可以通过增加判断还填补空白 < ?php if (get_previous_post()) { previous_post_link('上一篇: %link');} else {echo "已是最后文章";} ?> < ?php if (get_next_post()) { next_post_link('下一篇: %link');} else {echo "已是最新文章";} ?> 经过测试虽然显示同分类下的文章,但首篇文章和末尾的文章会不显示对应的提示信息“已是最后文章”和“已是最后文章”。只要在get_previous_post()函数中指定一下文章所属分类ID便能使代码完全有效。 下面是完整的代码: < ?php $categories = get_the_category(); $categoryIDS = array(); foreach ($categories as $category) { array_push($categoryIDS, $category->term_id); } $categoryIDS = implode(“,”, $categoryIDS); ?> < ?php if (get_previous_post($categoryIDS)) { previous_post_link('上一篇: %link','%title',true);} else { echo "已是最后文章";} ?> < ?php if (get_next_post($categoryIDS)) { next_post_link('上一篇: %link','%title',true);} else { echo "已是最新文章";} ?>

评论已关闭。