自动添加nofollow属性和新窗口打开WordPress文章/页面的站外链接

伤害是别人带来的,开心是自己寻找的,想哭就哭,哭完了接着笑,没有人能把谁的幸福没收。

站外链接的SEO还是比较重要的,今天倡萌分享下 自动添加nofollow属性和新窗口打开WordPress文章/页面的站外链接 的方法。

直接安装启用 Nofollow for external link 插件,或者将下面的代码添加到当前主题的 functions.php 文件即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
add_filter( 'the_content', 'cn_nf_url_parse');

function cn_nf_url_parse( $content ) {

	$regexp = "<a\s[^>]*rel="nofollow noopener noreferrer" href=(\&;??)([^\&; >]*?)\\1[^>]*>";
	if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
		if( !empty($matches) ) {

			$srcUrl = get_option('siteurl');
			for ($i=0; $i < count($matches); $i++)
			{

				$tag = $matches[$i][0];
				$tag2 = $matches[$i][0];
				$url = $matches[$i][0];

				$noFollow = '';

				$pattern = '/target\s*=\s*"\s*_blank\s*"/';
				preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
				if( count($match) < 1 )
					$noFollow .= ' target="_blank" ';

				$pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
				preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
				if( count($match) < 1 )
					$noFollow .= ' rel="nofollow" ';

				$pos = strpos($url,$srcUrl);
				if ($pos === false) {
					$tag = rtrim ($tag,'>');
					$tag .= $noFollow.'>';
					$content = str_replace($tag2,$tag,$content);
				}
			}
		}
	}

	$content = str_replace(']]>', ']]>', $content);
	return $content;

}

add_filter( 'the_content', 'cn_nf_url_parse'); function cn_nf_url_parse( $content ) { $regexp = "<a\s[^>]*rel="nofollow noopener noreferrer" href=(\&;??)([^\&; >]*?)\\1[^>]*>"; if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) { if( !empty($matches) ) { $srcUrl = get_option('siteurl'); for ($i=0; $i < count($matches); $i++) { $tag = $matches[$i][0]; $tag2 = $matches[$i][0]; $url = $matches[$i][0]; $noFollow = ''; $pattern = '/target\s*=\s*"\s*_blank\s*"/'; preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE); if( count($match) < 1 ) $noFollow .= ' target="_blank" '; $pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/'; preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE); if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>'); $tag .= $noFollow.'>'; $content = str_replace($tag2,$tag,$content); } } } } $content = str_replace(']]>', ']]>', $content); return $content; }

最终效果:自动给文章/页面的站外链接添加nofollow属性(rel=”nofollow”),并且在新窗口打开这些链接(即添加 target=”_blank”属性)。如果已经手动给链接添加了 rel=”dofollow”,就不会添加 rel=”nofollow”;如果手动添加了 target=”_blank”,就不会重复添加。

相关推荐:

自动给WordPress文章或评论内容的站外链接添加Nofollow属性

WordPress为指定分类的所有链接添加nofollow属性

在新窗口打开WordPress文章中的所有链接

本文自动添加nofollow属性和新窗口打开WordPress文章/页面的站外链接到此结束。不实心不成事,不虚心不知事;不自是者博闻,不自满者受益。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
wordpress网站外链nofollow以及域名是否www的区别

WordPress为非友情链接添加nofollow属性的方法

自动给WordPress文章或评论内容的站外链接添加Nofollow属性

WordPress为指定分类的所有链接添加nofollow属性

WordPress站点Gravatar头像前后台不显示的如何解决办法