wordpress给评论者链接添加nofollow、新窗口打开以及go跳转

2019年5月23日 402 次阅读 0 条评论 0 人点赞

20190815

改了之后才发现我的博客评论游客是无法填入网址的,那一条有网址的评论应该是别人利用wordpress接口插入的留言。只有注册用户才可以设置网址,但是我并没有开启注册。使用下方代码之后我发现问题很大,因为本身只有我自己的id才有链接,其他的都没有。但是点击我的链接也会go跳转,这种体验极其不好。于是修改了一下代码。但是我菜鸟一个。只能简单修改。添加了一个是否是管理员的判断,这儿需要去后台查看管理员ID。

//WordPress评论者的链接新窗口打开
function get_comment_author_link_new($return, $author, $comment_ID = 0) {
	$comment = get_comment( $comment_ID );
	$url     = get_comment_author_url( $comment );
	$author  = get_comment_author( $comment );
 
	if ( empty( $url ) || 'http://' == $url )
		$return = $author;
	else{
		if($comment->user_id != 4){
			
			$return = "$author";
	   $return=str_replace("href='$url'", "href=\"".home_url()."/go/?url=$url\" ",$return);
		}else{
		   $return = "$author";
	   }
	}
		//$url=str_replace("href=\"$url\"", "href=\"".home_url()."/go/?url=$url\" ",$url);
		//$return = "$author";
		
	
		
	   //$return=str_replace("href=\"$val\"", "href=\"".home_url()."/go/?url=$val\" ",$return);
 
	return $return;
}
add_filter('get_comment_author_link', 'get_comment_author_link_new', 10, 3);

前段时间给网站外链添加了nofollow,以及设置了新窗口打开,而且参考了张戈的go跳转代码,设置了博客go跳转。本站流量很少,评论也很少,评论只需要输入邮件和昵称就可以评论。同时针对游客来说,还可以同时输入自己的网址。最近博客慢慢有人评论了,我点击某位评论者的用户名,发现评论者链接是直接在本窗口打开的,体验极其不好,而且链接没有添加nofollow,于是便想着改造一下。百度搜集资料,找到了解决办法。具体原理不在解释,我提供一下我的解决办法。

直接在主题function.php文件中添加如下代码,便可以解决nofollow以及新窗口打开的问题。

//WordPress评论者的链接新窗口打开
function get_comment_author_link_new($return, $author, $comment_ID = 0) {
	$comment = get_comment( $comment_ID );
	$url     = get_comment_author_url( $comment );
	$author  = get_comment_author( $comment );
 
	if ( empty( $url ) || 'http://' == $url )
		$return = $author;
	else
		$return = "<a href='$url' target='_blank' rel='external nofollow' class='url'>$author</a>";
 
	return $return;
}
add_filter('get_comment_author_link', 'get_comment_author_link_new', 10, 3);

但是我感觉还不爽,强迫症的我觉评论区内容和文章内容已经开启go跳转了,那么我是不是可以直接调用这个go跳转,为评论者链接添加go跳转呢?答案是肯定的,所以我研究了一下我的go跳转代码,对上述代码进行了如下的修改。

//WordPress评论者的链接新窗口打开
function get_comment_author_link_new($return, $author, $comment_ID = 0) {
$comment = get_comment( $comment_ID );
$url = get_comment_author_url( $comment );
$author = get_comment_author( $comment );

if ( empty( $url ) || 'http://' == $url )
$return = $author;
else

$return = "<a href='$url' target='_blank' rel='external nofollow' class='url'>$author</a>";
$return=str_replace("href='$url'", "href=\"".home_url()."/go/?url=$url\" ",$return);//添加go跳转

return $return;
}
add_filter('get_comment_author_link', 'get_comment_author_link_new', 10, 3);

上述代码调用了本站先前设置的go跳转,其中代码含义是调用了根目录go文件夹下的index.php文件,这个index.php文件会自动跳转到你设置的链接中。
如果你的网站没有go跳转,那么可以使用如下的方法简单实现。
根目录新建文件夹go,把下载的index.php文件放置到此目录中,同时使用上述的代码就可以实现go跳转。


设置完成后就可以看看效果了。

怎么样这样是不很很炫酷呢。


1.默认给所有链接添加nofollow,blank,go,当然自己的链接应该也是。

2.go跳转可以按照自己情况修改。

菜鸟

文章评论(0)