前阵子本站分享了《分享boke112导航外链跳转页面技术及代码》,当初由于自己平时的习惯问题,都是人工手动给每一个外链添加统一的跳转前缀:http://你的域名/go/?url=,后来想想真的不太方便,应该会存在有自动添加这个前缀的功能的。
果不其然,在张戈博客那里找到相关的技术文章,其实实现起来很简单,只需要将以下代码添加到主题目录下的functions.php文件最后一个?>的前面即可将文章中的外链替换为go跳转的形式。
- //给外部链接加上跳转
- add_filter('the_content','the_content_nofollow',999);
- functionthe_content_nofollow($content)
- {
- preg_match_all('/<a(.*?)rel="nofollow noopener noreferrer" href="(.*?)"(.*?)>/',$content,$matches);
- if($matches){
- foreach($matches[2]as$val){
- if(strpos($val,'://')!==false&&strpos($val,home_url())===false&&!preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)){
- $content=str_replace("rel="nofollow noopener noreferrer" href=\"$val\"","rel="nofollow noopener noreferrer" href=\"".home_url()."/go/?url=$val\"",$content);
- }
- }
- }
- return$content;
- }
如果还想替换评论者的链接为go跳转的形式,只需要在主题目录下的functions.php查找是否存在修改评论链接为新窗口commentauthor函数,如果存在则将该函数内的:
- echo"<arel="nofollow noopener noreferrer" href='$url'rel='externalnofollow'target='_blank'class='url'>$author</a>";
修改为:
- 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跳转的形式内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!