发布作者: vkjia
百度收录: 正在检测是否收录...
作品采用: 《 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 》许可协议授权
众所周知,给文章的外链添加 nofollow 属性,可以有效防止垃圾链接对本站权重的稀释和伤害。在网上找了许多给 typecho 文章添加 nofollow 和新窗口打开的方法,99% 都是 typecho 1.0 版本之前的方法。对于 1.1和1.2 版本的 typecho 并不适用。于是乎自己动手改了点代码,问题解决了。
本教程特点:针对外链,会有 nofollow 属性和新窗口打开,但是针对本站内链仅有新窗口打开。这样既可以防止外链稀释本站权重,又可以通过内链优化页面排名。
nofollow 标签是由谷歌领头创新的一个 “反垃圾链接” 的标签,并被百度、yahoo 等各大搜索引擎广泛支持,引用 nofollow 标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有 nofollow 属性的任何出站链接,以减少垃圾链接的分散网站权重。
当外链使用_blank
属性(即新窗口打开)时,并不会关闭自己网站的标签,这样可以有效防止流量的流失,并且延长用户在网站的停留时间,对网站 seo 优化大有好处!
打开 typecho 根目录下的 typecho\var\Utils\HyperDown.php
文件,找到第 386 行,如以下代码:
// link
$text = preg_replace_callback("/\[((?:[^\]]|\\\\\]|\\\\\[)+?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",
function ($matches) use ($self) {
$escaped = $self->parseInline(
$self->escapeBracket($matches[1]), '', false, false);
$url = $self->escapeBracket($matches[2]);
$url = $self->cleanUrl($url);
return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");
},
$text
);
将代码中的:
return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");
替换为:
if (strstr($url,'//www.moewah.com') == false ) {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\" rel=\"nofollow\">{$escaped}</a>");
} else {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\">{$escaped}</a>");
}
搞定。
新建文章测试一下,看看是不是有效果!
—— 评论区 ——