我们在用wordpress开发时经常会用到上一篇下一篇的功能,<?php previous_post_link('%link') ?> <?php next_post_link('%link')  ?>最简单的方式就可以实现,那如果要进行一些改造要如何写呢?随ytkah一起来看看

  首先我们要知道函数的用法

<?php next_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ); ?>

  

  实例

<?php next_post_link('Next: %link') //实现下一篇功能?>

  只需要把这两段代码放入你的HTML程序中即可,简单实用,不过这种方法实现的上一篇下一篇功能是不分类别的,如果想要只显示相同类别的文章则需要用下面的代码了。除了调用外,还需要进行判断上一篇或下一篇是否有日志,代码如下:

<?php if (get_previous_post()){
previous_post_link("Pre: %link","%title",true);
}else{
echo "Pre: None";
} ?> <?php if (get_next_post()){
next_post_link("Next: %link","%title",true);
}else {
echo "Next: None";
} ?>

  上面的代码默认设置为同一分类下的上一篇和下一篇了,如果不需要,则把true改成false,或者直接删除true即可。其实把这两段代码放入程序中会发现当没文章时会显示空白,解决办法是给特定的分类下指定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()){
previous_post_link("Pre: %link","%title",true);
}else{
echo "Pre: None";
} ?> <?php if (get_next_post()){
next_post_link("Next: %link","%title",true);
}else {
echo "Next: None";
} ?>

  这样当没有上一篇或下一篇文章时就会显示None

  官方文档里的其他用法

  1、

<?php next_post_link( '%link', 'Next post in category', TRUE, '13' ); ?>

  显示同一分类的下一篇文章的链接,并且它不在id为13的分类中(类别ID #)。您可以将数字更改为您希望排除的任何类别。使用“and”作为分隔符排除多个类别。

<?php next_post_link( '%link', 'Next post in category', TRUE, '13 and 14' ); ?>

  显示同一分类的下一篇文章的链接,并且它不在id为13和14的分类中

  2、

<?php next_post_link( '<strong>%link</strong>' ); ?>

  给链接文字加粗

  3、

<?php next_post_link( '%link', 'Next post in category', TRUE ); ?>

  将自定义文本显示为与当前文章相同类别中的下一篇文章的链接。这里不包括文章标题。“类别中的下一篇文章”是本例中的自定义文本。

  4、

<?php next_post_link( '%link', 'Next post in taxonomy', TRUE, '', 'my_custom_taxonomy' ); ?>

  在相同的自定义分类法术语中显示到下一篇文章的链接。

  5、woocommerce中调用下一个产品(根据4演变而来)

<?php if (get_next_post()) {
$next = get_next_post_link('%link','Next Product <img src="/lib/img/products/icon_4_next.png" alt="">',true,'', 'product_cat');
echo str_replace('<a','<a class="common-btn next"',$next);
}
else { echo '';} ?>

  

05-28 16:33