【发布时间】:2019-01-15 01:39:33
【问题描述】:
我对 php 和 wordpress 环境相当陌生。无论如何,我已经着手创建一个插件,使用 wp-cron 以设定的时间间隔更新用户的角色...... 但是,我想我错过了一些东西,因为每当我尝试使用 set_role(或 add_role)时,它都会导致内部服务器错误 500....
我正在尝试制作的插件适用于 wordpress 5.0.3 多站点,它只会在其中一个站点上激活。 在激活和测试插件之前,我使用 Justin Tadlock 的插件“成员”创建了自定义角色。 调试了一下,好像可以获取到对应角色的用户对象,但是尝试改变角色会导致服务器报错。
// Get all users with specific role
$all_users_with_role = get_users( 'role=custom_role' );
// Go through users and update role
foreach ( $all_users_with_role as $user ) {
$user_role = new WP_User( $user->ID ); // This works fine
$user_role->set_role( 'new_custom_role' ); // This doesn't...
}
在循环中执行此操作时,代码将显示有具有自定义角色的用户:
echo '<span>' . esc_html( $user_role->user_email ) . '</span>';
但是,使用 set_role、add_role 或 remove_role 会导致错误。
我有什么遗漏吗?它不知道我要分配的角色吗?
【问题讨论】: