Limit role to one plugin

时间:2015-11-10 作者:C C

有没有办法做到这一点without 使用其他插件且不修改WP核心代码:

我想给我正在编写的自定义插件一个设置页面。因此,我需要向使用我的插件的角色添加插件功能。但是,我不希望这些用户看到或能够更改可能安装的任何其他插件的设置。只是我的插件。

我希望有类似于功能可以映射到自定义帖子类型的角色的方式,比如“$role\\u object->add\\u cap(\'update\\u settings\\u myPlugin\')”。

2 个回复
SO网友:C C

成年男子这不容易追查到。除非您为用户角色提供非常广泛的“manage\\u options”功能,否则上述答案绝对不起作用。我在这里询问(并回答)了Trac问题:Admin custom option screen not saved unless user manage_options capability

将来可能搜索/阅读此内容的任何人-诀窍是利用新的筛选功能来注册您所需的功能,以便为您的特定插件或主题进行更窄范围的“管理选项”活动。

SO网友:s_ha_dum

如果我理解你的意思,你所想做的应该是可行的。add_menu_page() 或相关子菜单和设置页面功能,接受所需功能的参数。例如:

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
第三个参数是“向用户显示此菜单所需的功能”将其设置为您自己发明的某种功能,然后add that capability to your user:

$user = new WP_User( $user_id );
$user->add_cap( \'can_edit_posts\' );
Or to a role:

// get the the role object
$role_object = get_role( $role_name );

// add $cap capability to this role object
$role_object->add_cap( $capability_name );

相关推荐

正在尝试获取wp-includes/capabilities.php中非对象的属性

在调试中,我每分钟都会收到以下通知序列。日志:[23-Oct-2012 13:27:33 UTC] PHP Notice: Trying to get property of non-object in mysite/wp-includes/capabilities.php on line 1022 [23-Oct-2012 13:27:33 UTC] PHP Notice: Trying to get property of non-object in mysite/wp-includes/