通过Javascript或PHP生成或硬编码标记的任何方式将输入设置为“只读”,安全值为零。用FireBug或Web Developer扩展来移除“锁”是很简单的,我相信其他人也一样。你所做的充其量只是表面上的。
如果要防止用户的电子邮件地址被更改,则必须使用(可能是personal_options_update
和/或edit_user_profile_update
钩住并强制电子邮件与数据库中已有的内容保持一致。类似这样:
function lock_user_email_wpse_100146($userid) {
$user = get_userdata($userid);
if (isset($_POST[\'email\'])) {
$_POST[\'email\'] = $user->user_email;
}
}
add_action(\'personal_options_update\',\'lock_user_email_wpse_100146\');
我提醒您不要这样做,因为这会阻止用户更改他们的电子邮件地址,而且人们确实会更改电子邮件地址。如果您这样做,而某人更改了地址,则此人将无法再重置其密码。这是一件很不友好的事。