要检查用户是否是特定用户,您有4个选项:
检查“ID”
检查nicename(slug)检查电子邮件检查用户登录所有这4个字段对于每个用户都是唯一的。因此,检查ID是一个选项,但这是最糟糕的:当创建用户时,管理员不知道ID,他在创建用户后查看ID,因此您可以在创建用户后编写代码。。。这很糟糕。
其他3个选项稍微好一点:你可以在创建用户之前查看代码,例如:
if ( \'standard_user\' === $current_user->user_nicename ) {
// do something
}
然后,管理员必须创建用户,但要记住使用
\'standard_user\'
作为用户nicename。
然而,一旦你问起最佳实践,我不能说这是最佳实践,因为它需要硬编码:你在编写代码时需要管理员在创建用户类型特定字符串时进行操作。。。如果出现拼写错误呢?如果admin无法回忆起要使用的字符串是什么?
如果您是为自己编写代码,那么使用它不会有太大的痛苦,但是如果您是为其他人(客户?)编写代码的话或者你计划分发你的代码,你当然应该用另一种方式。
有不同的可能性,这是一种:
首先,您必须考虑您通常为特定的标准用户添加的角色。
假设用户应该是贡献者。
激活插件时,创建自定义角色克隆贡献者功能。
function myplugin_install() {
$contributor = get_role(\'contributor\');
$standard = add_role( \'standard\', \'Standard User\', $contributor->capabilities );
}
register_activation_hook( __FILE__, \'myplugin_install\' );
然后,写下你的条件如下:
$user = wp_get_current_user();
if ( user_can($user, \'manage_options\') ) {
// code for admin
} elseif ( in_array( \'standard\', $user->roles ) ) {
// code for your standard user
} else {
// code for others
}
现在,当管理员创建标准用户时,只需从用户角色下拉列表中选择“标准用户”。
PS:记住在插件停用时删除您的自定义角色:
function myplugin_unistall() {
remove_role( \'standard\' );
}
register_deactivation_hook( __FILE__, \'myplugin_unistall\' );