!
也想出现在这里? 联系我们
广告位

纯代码WordPress站外链接自动添加nofollow和新窗口打开

我们在写 WordPress 博客文章时经常会使用到站外链接,相信很多新手朋友也不会在意这里站外链接,但长期以往下来会造成你站点权重流失。可能有的人会说那不用外链不行呀,那因为站外链接造成权重流失这种情况怎么办呢?如何解决呢?

其实方法很简单,我们只需把外链加上“nofollow”属性即可,其实目前很多主题本身应该自带这个功能。如果不知道自己的文章中的站外链接是否加有“rel=”nofollow”,请打开一个有站外链接的页面,右键查看源码,然后看外链后面是否添加了“rel=”nofollow”.如果有证明你站点的外链已做过 nofollow 处理,不会造成权重流失。

如果没有,博主将在这里为大家分享一个如何防止自己的 WordPress 博客因站外链接造成权重流失,依旧是纯代码实现 WordPress 文章的站外链接自动添加 nofollow 属性和在新窗口打开。

方法一

我们只需在主题的 functions.php 文件添加下面代码即可,DUX 主题修改“functions-theme.php”文件,添加代码后会自动给你文章的的外链添加 rel=”dofollow”、target=”_blank”属性,当然如果你有些链接已经手动添加,不会受到任何影响,代码也不会重复添加。

  1. add_filter( 'the_content', 'cn_nf_url_parse');
  2. function cn_nf_url_parse( $content ) {
  3. $regexp = "]*href=(\"??)([^\" >]*?)\\1[^>]*>";
  4. if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
  5. if( !empty($matches) ) {
  6. $srcUrl = get_option('siteurl');
  7. for ($i=0; $i < count($matches); $i++)
  8. {
  9. $tag = $matches[$i][0];
  10. $tag2 = $matches[$i][0];
  11. $url = $matches[$i][0];
  12. $noFollow = '';
  13. $pattern = '/target\s*=\s*"\s*_blank\s*"/';
  14. preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
  15. if( count($match) < 1 )
  16. $noFollow .= ' target="_blank" ';
  17. $pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
  18. preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
  19. if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>');
  20. $tag .= $noFollow.'>';
  21. $content = str_replace($tag2,$tag,$content);
  22. }
  23. }
  24. }
  25. }
  26. $content = str_replace(']]>', ']]>', $content);
  27. return $content;
  28. }

方法二

第一行代码是给文章内的外链自动添加 nofollow 标签,第三方代码是给评论内的外链自动添加 nofollow 标签,这两种情况,可自行选择。如果你仅仅需要的是给文章内的外链添加 nofollow 标签,那么请删除第三行代码即可。代码添加文章同样是主题的 functions.php 内。

  1. add_filter('the_content', 'auto_nofollow'); //nofollow文章内容的站外链接
  2. add_filter('comment_text', 'auto_nofollow'); //nofollow评论内容的站外链接
  3. function auto_nofollow($content) {
  4. //return stripslashes(wp_rel_nofollow($content));
  5. return preg_replace_callback('/]+/', 'auto_nofollow_callback', $content);
  6. }
  7. function auto_nofollow_callback($matches) {
  8. $link = $matches[0];
  9. $site_link = get_bloginfo('url');
  10. if (strpos($link, 'rel') === false) {
  11. $link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);
  12. } elseif (preg_match("%href=S(?!$site_link)%i", $link)) {
  13. $link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);
  14. }
  15. return $link;
  16. }

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

代码实现验证WordPress用户注册邮箱真实性

2023-12-28 10:08:09

WordPress教程

WordPress插件开发教程一:创建、停用、删除插件

2023-12-28 10:08:41

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索