自定义角色无法访问wp-admin

时间:2020-11-07 作者:Jack

我正在尝试创建一个自定义角色,非常类似于admin,但没有编辑/删除插件的功能。因为我不习惯使用插件,所以我编辑了这些函数。php文件添加如下内容:

// Add a custom user role

$result = add_role( \'new_role\', __(
\'New Role\' ),
array( 
\'edit_posts\' => true, // Allows user to edit their own posts
\'edit_pages\' => true, // Allows user to edit pages
\'edit_others_posts\' => true, // Allows user to edit others posts not just their own
\'create_posts\' => true, // Allows user to create new posts
\'manage_categories\' => true, // Allows user to manage post categories
\'publish_posts\' => true, // Allows the user to publish, otherwise posts stays in draft mode
\'edit_themes\' => true, // false denies this capability. User can’t edit your theme
\'install_plugins\' => false, // User cant add new plugins
\'update_plugin\' => true, // User can’t update any plugins
\'update_core\' => false // user cant perform core updates
)
                  );
之后,我可以用我的管理配置文件创建一个新用户,并为他分配我刚才创建的角色。一切都很好,直到我与新用户登录时,我只能访问网站的首页。

我试图在url后添加/wp admin,但收到消息:

抱歉,不允许您访问此页面

我试图在上面的数组中添加此行

\'manage_options\' => true, //not sure about that
但如果没有成功,障碍仍然存在

Question: How i can, without installing plugins, make a custom user role access the control panel?

谢谢大家

1 个回复
SO网友:Veerji

在以下代码的帮助下,您可以使自定义用户角色访问控制面板。以下代码适用于挂钩admin_initinit

add_action( \'admin_init\', \'my_custom_function\' );

function my_custom_function() {

  add_role( \'new_role\', \'New Role\' );
  
  $role = get_role( \'new_role\' );
  
  $role->add_cap( \'edit_posts\' );
  $role->add_cap( \'edit_pages\' );
  $role->add_cap( \'edit_others_posts\' );
  $role->add_cap( \'create_posts\' );
  $role->add_cap( \'manage_categories\' );
  $role->add_cap( \'publish_posts\' );
  $role->add_cap( \'edit_themes\' );
  $role->add_cap( \'install_plugins\', false );
  $role->add_cap( \'update_plugin\' );
  $role->add_cap( \'update_core\', false );
 
  // add more capabilities as per you requirements
}

相关推荐

禁用所有插件后无法访问wp-admin

通过wp admin/插件禁用所有插件后,我无法访问我的管理页面。php。最初,我试图激活多站点。现在,尽管登录到我的管理帐户,wp管理员只会说“对不起,你不允许访问此页面”(或类似的内容,因为我用印尼语设置了语言)。我正在使用Wordpress 5.4.1和PHP 7.1。它托管在共享主机上,我可以使用cpanel访问它。已安装的插件:Akismet(Akismet)Jetpack(Jetpack)登录器(Loginizer)Woocommerce(Woocommerce)自动上传图像(Auto Upl