使用现有用户的用户ID,如何将角色更改为编辑器?
以下是我尝试的内容:
$wpdb->query("UPDATE wp_usermeta SET meta_value = \'a:1:{s:6:\\"editor\\";b:1;}\' WHERE user_id = \'$user_id\' AND meta_key = \'wp_capabilities\'");
不知道我做错了什么?使用现有用户的用户ID,如何将角色更改为编辑器?
以下是我尝试的内容:
$wpdb->query("UPDATE wp_usermeta SET meta_value = \'a:1:{s:6:\\"editor\\";b:1;}\' WHERE user_id = \'$user_id\' AND meta_key = \'wp_capabilities\'");
不知道我做错了什么?存储用户角色的Usermeta密钥在名称中有一个前缀,即wp-config.php
文件所以meta_key
将具有表单{prefix}_capabilities
您的查询应该如下所示
global $wpdb;
$wpdb->query(
$wpdb->prepare(
"UPDATE {$wpdb->usermeta} SET meta_value = \'a:1:{s:6:\\"editor\\";b:1;}\' WHERE user_id = %d AND meta_key = \'{$wpdb->prefix}capabilities\'",
$user_id )
);
您不需要编写SQL查询。您可以通过获取WP_User
对象具有get_userdata
函数并使用该方法设置新角色set_role (或remove_role
和add_role
仅更改其中一个角色)。$my_user_id = 12345; // user ID for changing role
$my_user = get_userdata($my_user_id);
if ( $my_user instanceof WP_User )
$my_user->set_role(\'editor\');
我一直在尝试使用codex修复排序问题get_users(), 但我似乎无法让它工作。抄本显示我可以设置\'orderby\' => \'post_count\', 但我想更改它,使其按页数排序。看起来应该是很容易改变的(page_count?), 但它不起作用。有人能给我一些建议吗?