wordpress评论用户名部分隐藏

对于站长而言,站点有评论是好处,但有时wordpress站长并不希望暴露太多的用户信息,比如用户名,因为有这些信息,一些黑客可能会加以利用,以下是隐藏的方法,可以自动将评论用户名中间部分用*代替。此方法适用于大部分主题,如果主题是定做的,可能会没有效果,米粒亲测begin主题是由效果的。

以下代码添加到function.php


/* 评论作者和谐,使昵称部分隐藏,例如:ad**n 。*/
function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i< $strlen; $i++) { if($i>=$start && $i< ($start+$sublen)) { if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
//if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
return $tmpstr;
}
}
//替换评论作者
function my_get_comment_author_link() {
$url = get_comment_author_url( $comment_ID );
$author = cut_str(get_comment_author( $comment_ID ), 2, 0).'***'.cut_str(get_comment_author( $comment_ID ), 1, -1);
if ( empty( $url ) || 'http://' == $url )
return $author;
else
return "$author";
}
add_filter('get_comment_author_link', 'my_get_comment_author_link');
0

评论0

请先

没有账号? 忘记密码?