免费《新手做网站视频教程》,在线观看,如果你想从零开始自己做网站,点击开始吧!

WordPress single文章页面实现上一篇/下一篇

  1. 首页
  2. »
  3. 图文教程
  4. »
  5. WordPress建站教程
  6. »
  7. WordPress single文章页面实现上一篇/下一篇

文章目录

同分类下实现上一篇/下一篇代码

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

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

 

next_post_link('%link', '%title', true)函数中增加了一个判断:true,就可以限制在同分类。

单纯获取上一篇/下一篇文本和链接

一般我们添加上一篇和下一篇文章时的代码是这样子的:

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

该代码最终解析出来的代码大概如下:

<a href="……" rel="external nofollow" rel="external nofollow" > …… </a>
<a href="……" rel="external nofollow" rel="external nofollow" > …… </a>

这样子的结构是非常简单,但如果我要增加 title、target 等属性值时,单靠上面两个函数是办不到的。

其实要解决这个问题很简单,需要用到这两个函数:get_previous_post、get_next_post。通过这两个函数我们可以获取到上一篇和下一篇文章的相关信息。

先用这两个函数获取基本结构体:

<?php $prev_post = get_previous_post();$next_post = get_next_post();?>

上一篇文字:<?php echo $prev_post->post_title; ?>

上一篇链接:<?php echo get_permalink( $prev_post->ID ); ?>

下一篇文字:<?php echo $next_post->post_title; ?>

下一篇链接:<?php echo get_permalink( $next_post->ID ); ?>

好了,下面就来干货,说下解决问题的方法。只要将:

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

替换成:

<?php
$prev_post = get_previous_post();
if (!empty( $prev_post )): ?>
<a title="<?php echo $prev_post->post_title; ?>"
href="<?php echo get_permalink( $prev_post->ID ); ?>"
rel="external nofollow" ><?php echo $prev_post->post_title; ?></a>
<?php endif; ?>
<?php
$next_post = get_next_post();
if (!empty( $next_post )): ?>
<a title="<?php echo $next_post->post_title; ?>"
href="<?php echo get_permalink( $next_post->ID ); ?>"
rel="external nofollow" ><?php echo $next_post->post_title; ?></a>
<?php endif; ?>

通过上面的替换,问题就完美解决了。除了可以添加 title 属性外,大家如果有需要也可以加上新窗口打开的属性:target:"_blank"。

推荐阅读

联系我