最近有个朋友在学Wordpress时,期间问了我一个问题,当在文章页面添加上一篇和下一篇文章时,怎么没有title
属性?我仔细一看还真没有,以前倒没注意到这个问题,于是在百度上搜索了一番,发现挺多人都有这方面的需求,但没有一个满意的答案,网上介绍的一种解决方法是修改Wordpress程序文件来实现,但我个人非常不喜欢。一则是程序的文件你最好别动,除非你想成为Wordpress的程序开发人员;二则是当你下次更新程序的时候,又得重新修改,太麻烦了,不适合我这种懒人。
好吧,仔细研究一下吧,一般我们添加上一篇和下一篇文章时的代码是这样子的:
<?php previous_post_link('%link','<<') ?> <?php next_post_link('%link','>>') ?>
该代码最终解析出来的代码大概如下:
<a href="……" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > …… </a> <a href="……" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > …… </a>
这样子的结构是非常简单,如果我要增加title
、target
等属性值时,单靠上面两个函数是办不到的。其实要解决这个问题很简单,不知道大家有没有接触到这两个函数:get_previous_post
、get_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%20echo%20get_permalink(%20$prev_post->ID%20);%20?>" rel="external nofollow" 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%20echo%20get_permalink(%20$next_post->ID%20);%20?>" rel="external nofollow" rel="external nofollow" ><?php echo $next_post->post_title; ?></a> <?php endif; ?>
通过上面的替换,问题就完美解决了。除了可以添加title
属性外,大家如果有需要也可以加上新窗口打开的属性:target:"_blank"
。
好了,这个小技巧希望对大家有用。如果你有好的小技巧也可以和我们一起分享,让大家一起享受你的成就感。
学习
很不错的小技巧,学习了。
都是学习来的
点赞~ 写得很好~~ 已经用上了~
在外面再包一层span的标签,在它上面写不就可以了?
哎 我这样的菜鸟 什么时候才能读懂代码
看过很多,写得最清楚的一个,代码也是干干净净,不像有些人,玩代码故意很高深,肚子有货倒不出来,或是说了自己知道,很可悲,也可恨!
这个没什么用吧?