在 WordPress 中获取上一篇下一篇文章的链接 - 文章教程

在 WordPress 中获取上一篇下一篇文章的链接

发布于 2019-04-11 字数 2517 浏览 2877 评论 0

如何获取到 WordPress 上一篇下一篇文章的链接,我马上想到了 previous_post_link() 和 next_post_link() 函数,这两个函数是输出 WordPress 上一篇下一篇文章的代码,通过查看其 API 文档,发现并没有直接获取链接的方式,整个函数是直接输出的。

在 WordPress 中获取上一篇下一篇文章的链接

你想给上一篇下一篇链接添加个 title 或者是 Classs 都不行,网上搜索了相关的文章,介绍的一种解决方法是修改 WordPress 程序文件来实现,但我个人非常不喜欢。一则是程序的文件你最好别动,除非你想成为 WordPress 的程序开发人员;二则是当你 下次更新程序的时候,又得重新修改,太麻烦了,不适合我这种懒人。

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

<?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>

这样子的结构是非常简单,如果我要增加 titletarget 等属性值时,单靠上面两个函数是办不到的。其实要解决这个问题很简单,不知道大家有没有接触到这两个函数:get_previous_postget_next_post。通过这两个函数我们可以获取到上一篇和下一篇文章的相关信息。大家可以到官网看看这两个函数的介绍。

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

<?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"

好了这个小技巧希望对大家有用。如果你有好的小技巧也可以和我们一起分享,让大家一起享受你的成就感。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

清欢

文章 1 评论 0

贱贱哒

文章 3 评论 0

悸初

文章 2 评论 0

西瓜杏

文章 0 评论 0

各自安好

文章 0 评论 0