自动替换文章中的外链为go跳转的形式

江南的古屋主要以青砖为材料,砖与砖的缝隙里挤挤挨挨地塞满了苔藓与野草,几根木制的横梁点缀其间。

前阵子本站分享了《分享boke112导航外链跳转页面技术及代码》,当初由于自己平时的习惯问题,都是人工手动给每一个外链添加统一的跳转前缀:http://你的域名/go/?url=,后来想想真的不太方便,应该会存在有自动添加这个前缀的功能的。

果不其然,在张戈博客那里找到相关的技术文章,其实实现起来很简单,只需要将以下代码添加到主题目录下的functions.php文件最后一个?>的前面即可将文章中的外链替换为go跳转的形式。

  1. //给外部链接加上跳转
  2. add_filter('the_content','the_content_nofollow',999);
  3. functionthe_content_nofollow($content)
  4. {
  5. preg_match_all('/<a(.*?)rel="nofollow noopener noreferrer" href="(.*?)"(.*?)>/',$content,$matches);
  6. if($matches){
  7. foreach($matches[2]as$val){
  8. if(strpos($val,'://')!==false&&strpos($val,home_url())===false&&!preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)){
  9. $content=str_replace("rel="nofollow noopener noreferrer" href=\"$val\"","rel="nofollow noopener noreferrer" href=\"".home_url()."/go/?url=$val\"",$content);
  10. }
  11. }
  12. }
  13. return$content;
  14. }

如果还想替换评论者的链接为go跳转的形式,只需要在主题目录下的functions.php查找是否存在修改评论链接为新窗口commentauthor函数,如果存在则将该函数内的:

  1. echo"<arel="nofollow noopener noreferrer" href='$url'rel='externalnofollow'target='_blank'class='url'>$author</a>";

修改为:

  1. echo"<arel="nofollow noopener noreferrer" href='".home_url()."/go/?url=$url'rel='externalnofollow'target='_blank'class='url'>$author</a>";

即可将评论者的链接替换为go跳转的形式。其实就是在链接前面新增一个go跳转即可,相同的道理,大家慢慢折腾吧。

Ps:如果functions.php文件里面没有这个评论新窗口的函数,请自己找到评论列表输出的代码位置(可能在comments.php或comment-template.php),然后参考修改即可(国内主题一般都会有个评论新窗口函数,自己仔细找找看)!

文中技术及代码来自于张戈博客的:分享一个WordPress外链跳转好代码教程,兼容知更鸟暗箱下载和文章索引

到此这篇关于自动替换文章中的外链为go跳转的形式就介绍到这了。每一个人,活在世上,必定要经历很多,承受很多。经历,不是沧桑,是沉淀;承受,不是苦难,是历练。在沧桑中领悟,在历练中成熟,迎一袖风,绽一树香,静品淡藏。趟过岁月冷暖,感知生命厚重,苦过,甜过,爱过,恨过,哭过,笑过,才是人生。更多相关自动替换文章中的外链为go跳转的形式内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress做公司官网好吗?会不会显得档次很低?

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?