wordpress优化之文章外链自动添加nofollow

2016年12月13日21:04:14 发表评论 203

很多时候我们不管是复制别人的文章还是,采集文章等等的,更多的是如我这样子的,经常转载小伙伴们的文章,但是要是转载别人的文章,肉球不给人留个连接肯定是做不到的,毕竟作者不容易。但是每次都要手工添加“nofollow”标记,肯定工作量太大。肉球就在网上各种找,找了许久,但是这些代码总感觉不满意,索性就自己折腾吧,这不稍微有点成绩就急忙忙的拿来分享了。

增加nofollow标记,说白了就是集中权重到自己的网站,不要流失网站的权重,比较利于seo哈。

当然也许小伙伴们会说,不是网上有很多插件吗,对我知道,但是肉球想说我有洁癖行不,最近用百度bae感觉速度杠杠的,索性我就不装插件了,能够用代码解决的就都用代码解决问题岂不是更好嘛。

网站关于这种方式有很多,一般都是在函数模板当中添加一个判定if,就轻松搞定了,代码的质量好坏肉球不好说,毕竟能力有限。

本来肉球用着的是鸟叔的主题,优化在行业内来说基本上是首屈一指的了,自己就懒得优化,不过最近在在倒腾一个小站,用的是自己简单写的主题,基本上没啥样式可言,就是仿照官方的那个主题,稍微加点自己喜欢的额元素到其中,改变一下布局而已。

不过发现因为经常性写文章会借鉴一些行业中的大牛,总要给人家加个连接什么的,不然人家大牛分分钟灭掉我了,可是发现主题居然优化不到位,索性就自己折腾吧,然后成果在下面,总体部分代码来自网上的,自己也是贴合自己的喜好然后稍加修改而已。

add_filter( 'the_content', 'v7v3_seo_wl');
function v7v3_seo_wl( $content ) {
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
if( !emptyempty($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;
}

只需要将这些代码粘贴到functions.php(函数模板)当中即可,另外很多主题的函数模板未必就是“functions.php”但是一定会有这个函数模板,一般都是加了一个引用,注意看一下,然后粘贴到引用的那个模板文件当中即可。

 

weinxin
微信公众号“卟吥”
这是我的微信扫一扫呗,已经有三百多小伙伴们跟着肉球菌吃瓜了,你还在等什么呢?跟我一起吧!
肉球

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: