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跳转。
[download title="本地下载"]https://fujian-10010611.cos.ap-shanghai.myqcloud.com/index.php[/download]
设置完成后就可以看看效果了。
怎么样这样是不很很炫酷呢。
1.默认给所有链接添加nofollow,blank,go,当然自己的链接应该也是。
2.go跳转可以按照自己情况修改。
文章评论