Products
GG网络技术分享 2025-03-18 16:13 0
我们在开发WordPress主题的用户中心功能的时候,可能需要在用户基本资料的地方使用一些技术手段来保护用户的隐私信息,例如用户的邮箱地址、用户名或者是用户的手机号码。那么我们最常用的方式方法就是使用(*)星号来处理这些信息的显示效果来达到页面输出的用户隐私信息,例如下图的效果示例:
接下来我就来介绍一种简单又实用的WordPress中使用(*)星号隐藏用户信息的方法,我已经将代码封装,支持邮箱地址、手机号码、中文用户名,具体行有注释,复制下面代码到自己主题的 function.php 文件中直接用就好了。
/**
* 使用(*)星号隐藏手机号码、中文用户名及邮箱地址
* @Author Jackie
* @Author url https://www.themeke.com
*/
function starStr($str) {
if (strpos($str, '@')) { //邮箱
$email_array = explode("@", $str);
$prevfix = (strlen($email_array[0]) < 4) ? "" : substr($str, 0, 3); //邮箱前缀
$count = 0;
$str = preg_replace('/([\\d\\w+_-]{0,100})@/', '***@', $str, -1, $count); //邮箱前缀星号替换
$repstr = $prevfix . $str;
} else {
$pattern = '/(1[3458]{1}[0-9])[0-9]{4}([0-9]{4})/i'; //正则判断手机号
if (preg_match($pattern, $str)) { //手机号码星号替换
$repstr = preg_replace($pattern, '$1****$2', $str);
} else { //中文用户名星号替换
$strlen = mb_strlen($str, 'utf-8');
$firstStr = mb_substr($str, 0, 1, 'utf-8');
$lastStr = mb_substr($str, -1, 1, 'utf-8');
if ($strlen == 2){
$repstr = $firstStr . str_repeat('*', mb_strlen($str, 'utf-8') - 1);
}else{
$repstr = $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
}
}
}
return $repstr;
}
<?php
$username = "用户名";
$email = "123456@qq.com";
$phone = "13512345678";
echo starStr($username); // 输出: 用*名
echo starStr($email); // 输出: 123***@qq.com
echo starStr($phone); // 输出: 135****5678
?>可视化编辑器:
工具栏:
用户名;
资料图片:
你可以在Gravatar网站上注册账户,并设置你的头像。
当你在WordPress网站中(支持Gravatar服务的网站中)使用相同的邮件账户注册会员,那么WordPress就会根据你的邮件账户信息,从Gravatar上获取你的头像。
如果用户根本没有在Gravatar设置头像,则使用默认头像。
上一篇:给你的网站添加用户
下一篇:管理网站的用户
Demand feedback