(更)让typecho文章内、评论链接新窗口打开并添加nofollow
99% 的网站都“被中招” - 有史以来最被低估的漏洞& 讨论
新版
(1.1)没有此目录/var/CommonMark
加粗文字还是改源码,有些主题是支持新窗口打开的,但是有些就没有
还是动源码吧,一劳永逸
文章内链接新窗口打开并添加nofollow
来自Typecho使用贴士: Markdown文章内链接从新窗口打开
在/var/MarkdownExtraExtended.php
2321行
将
$result = "<a href=\"$url\"";
改为
$result = "<a rel=\"external nofollow\" target=\"_blank\" href=\"$url\"";
评论新打开窗口
来自Typecho博客评论中网址在新窗口打开
在/var/Widget/Abstract/Comments.php
376行
rel="external nofollow"' : NULL) , '>' , $this->author , '</a>';
改为
rel="external nofollow"' : NULL) , 'target="_blank">' , $this->author , '</a>';
这里要说明一下,这个站点是不要搜索收录的,所以就加了rel="external nofollow"
注重SEO那些的可以不要,可删掉
以上方法有个弊端就是是直接改源码的,升级可能就没了
以下转载于:让typecho 1.0文章内链接新窗口打开并添加nofollow
typecho 1.0文章内链接都是在本窗口打开
或许是小不习惯点击关闭按钮多于后退按钮,所以强迫症又复发了。于是发生了后面的事儿,每一次小不发文绝大可能都是因为将搜索引擎翻了个底朝天都没有然后,然后却又无疑撞到“玄机”,经历对typecho 1.0的var目录刨根,黄土厚爱有人心,最终也算解决了typecho 1.0文章内链接从新窗口打开及给文章内链接增加nofollow的问题。
可能方案并不完美也不规范,小不是不提倡修改程序源码的,但是介于小不不会php做不到写插件及通过修改模板达到相同效果也就只能动程序了,谁让你“不乖”。当然如果大牛看到了本文请略过,然后再大法神功写过模板函数或者造个插件都是极好的。
打开HtmlRenderer.php文件,
文件所在目录位置:typecho1.0根目录下/var/CommonMark
104行 case CommonMark_Element_InlineElement::TYPE_LINK:下面增加代码段,根据需求增加,小不是2个都加了了,那么就是这样:
case CommonMark_Element_InlineElement::TYPE_LINK:
$attrs['href'] = $this->escape($inline->getAttribute('destination'), true);
$attrs['target'] = $this->escape(_blank, true);
$attrs['rel'] = $this->escape(nofollow, true);
if ($title = $inline->getAttribute('title')) {
$attrs['title'] = $this->escape($title, true);
}
请对比源代码
typecho 1.0文章内连接新窗口打开
增加代码段:
$attrs['target'] = $this->escape(_blank, true);
typecho 1.0文章内链接加上nofollow
增加代码段:
$attrs['rel'] = $this->escape(nofollow, true);
typecho文章内链接新窗口打开代码,添加到footer.php里,需要jQuery支持
<!--文章内的评论在新窗口打开-->
<script type="text/javascript">
jQuery(document).ready(function(){jQuery("a[rel='external'],a[rel='external nofollow']").click(function(){window.open(this.href);return false})});
</script>
<!--文章内的链接在新窗口打开-->
<script type="text/javascript">
jQuery(document).ready(function($){$('.post-content a').attr({ rel:"external nofollow"})});
jQuery(document).ready(function($){$('.post-content a').attr({ target:"_blank"})});
</script>
标签:无