add_submenu_page如何设置多个角色?

时间:2015-05-11 03:50:51

标签: wordpress wordpress-plugin

我创建了一些wordpress管理菜单,我想为多个角色添加这些菜单:

add_submenu_page('Events', 'Colloqui', 'subscriber, editor', 'events', 'ww_events');

这仅适用于订阅者角色。但是,我希望此菜单也适用于管理员角色。

3 个答案:

答案 0 :(得分:3)

我会为subscribereditor角色创建自定义功能。

$subs = get_role('subscriber');
$editor = get_role('editor');

$subs->add_cap('custom_menu_access');
$editor->add_cap('custom_menu_access');

然后创建具有所述功能的新菜单项(请参阅以下函数调用中的第四个参数)。

add_submenu_page('some-parent-slug, 'Events', 'Colloqui', 'custom_menu_access', 'events', 'ww_events');

请记住仅在插件/主题激活时添加功能和角色,因为它们会保存到数据库中。

答案 1 :(得分:1)

我已经解决了这个问题。获取当前用户角色,然后将特定的管理菜单添加到特定角色。

    $c_id = get_current_user_id();
    $user = new WP_User($c_id);
    $u_role =  $user->roles[0];
    if(($u_role == "administrator")) {
    function register_merchant() {
    add_submenu_page( $parent_slug, $page_title, $menu_title, 'administrator' , 
    $menu_slug, $function );
    }
    }
    else if($u_role == "custom_role") {
    function register_merchant() {
    add_submenu_page( $parent_slug, $page_title, $menu_title, 'custom_role' , 
    $menu_slug, $function );
    }}
    else {
        function register_merchant() {
    add_submenu_page( $parent_slug, $page_title, $menu_title, 'custom_role' , 
    $menu_slug, $function );
} }

答案 2 :(得分:0)

对于菜单的权限,您必须为页面分配功能。 add_submenu_page的第四个参数是$capability

https://codex.wordpress.org/Function_Reference/add_submenu_page

add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );

检查此codex页面以获取WordPress中的可用功能。 https://codex.wordpress.org/Roles_and_Capabilities