开始接触WordPress的时候,有点反感的就是文字评论作者留链接,点击打开直接在原窗口打开,而不是新窗口打开。
这主要是WordPress是外国人开发的,国人与外国人在思想的差异导致的,他们会觉得在不经过用户的决定而自行决定新窗口打开有为用户体验,这也是在W3C中不支持border="0" 和target="_blank"的原因。
那么如何让一个链接新窗口打开,又符合W3C的用户体验呢,方法还是有几个的,最方便的还是使用Jquery,一句代码就可以搞定。而且还可以让整站都能使用,完全符合W3C。
1、加载Jquery,现在一般WordPress都使用的Jquery库了,所以要最大化的利用好这个库。
2、jQuery 代码
jQuery(document).ready(function(){
jQuery("a[rel='external'],a[rel='external nofollow'],a[rel='external nofollow ugc']").click(
function(){window.open(this.href);return false})
});
因为WordPress在给评论作者链接时给每个链接加了一个 rel='external nofollow' ,告诉搜索引擎这个链接是外部的,并且不要追踪此链接。新版WordPress则变成了rel='external nofollow ugc' 。在rel里面有新增了ugc,表示是用户创造内容;nofollow 主要跟SEO有关,防止页面权重流失。
上面那段Jquery代码表示,凡事有 rel='external nofollow ugc' 、 rel='external nofollow' 和 rel='external' 的链接,都是新窗口打开。
所以以后我们在网页中要使用别人的网上的时候,我们可以在链接上面加个 rel='external' ,这样避免使用target="_blank"。用 rel='external' 既符合W3C,有能在新窗口打开,是不是非常的不错。
如果不关心W3C, wordpress 提供了一个钩子 get_comment_author_link ,通过修改这个钩子,可以让点击评论作者的网站时在新的窗口打开。那么直接在当前使用WordPress主题的 functions.php 中添加以下代码就可以了。
add_filter('get_comment_author_link', function ($return, $author, $id) {
return str_replace('<a ', '<a target="_blank" ', $return);
},0,3 );
搞定了,加在头部文档里面header.php里面,开始我使用的是,可惜过了几天就是失效了:
function externallinks()
{
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName(“a”);
for (var i=0; i<anchors.length; i++)
{
var anchor = anchors[i];
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external nofollow")
{
anchor.target = "_blank";
}
}
}
window.onload = externallinks;
这个代码加在哪里
感谢分享
还是习惯保留 这样互访起来比较方便
简单实用,点赞!!
终于找到了