【问题标题】:Create a new role that only contains one plugin创建一个只包含一个插件的新角色
【发布时间】:2020-11-10 13:26:56
【问题描述】:

我想为多站点的 WordPress 后端创建一个新用户角色。我已经设法为单个页面创建了一个用户角色。一切正常。我的目标是用户角色中只显示一个插件菜单。

我目前在单页的状态:

还有我的用户角色代码:

function igv_user_role() {
    add_role(
        'custom_role',
        'EXAMPLE ROLE',
        array(
            'read'    => true,
            'level_0' => true,
            'newCap' => true,
        )
    );

    $role = get_role( 'custom_role' );
    $role->add_cap( 'newCap', false );

}

add_action( 'init', 'igv_user_role' );


//Adming Menue

function igv_add_menu() {
    add_menu_page( 'IGV', 'IGV', 'igv_gutscheinverwaltung', 'igv-menu', 'igv_dashboard', '', 99 );
    add_submenu_page( 'igv-menu', 'Import', 'Import', 'myCap'//<--Here, 'import', 'igv_import' );
    add_submenu_page( 'igv-menu', 'Ausgeben', 'Ausgeben', 'myCap'//<--Here, 'ausgeben', 'igv_ausgeben' );
    add_submenu_page( 'igv-menu', 'Entwerten', 'Entwerten', 'myCap'//<--Here, 'entwerten', 'igv_entwerten' );
    add_submenu_page( 'igv-menu', 'Alle Gutscheincodes', 'Alle Gutscheincodes', 'myCap'//<--Here, 'all_gutscheincodes', 'igv_all_gutscheincodes' );
    add_submenu_page( 'igv-menu', 'Händlerverwaltung', 'Händlerverwaltung', 'myCap'//<--Here, 'haendlerverwaltung', 'igv_haendlerverwaltung' );
    add_submenu_page( 'igv-menu', 'Händlersuche', 'Händlersuche', 'myCap'//<--Here, 'haendlersuche', 'igv_haendlersuche' );
};

add_action( 'admin_menu', 'igv_add_menu' );

问题在于,即使您以管理员或任何其他角色登录,用户角色也会显示插件。为什么?

也许你有什么想法或者我只是看错了?

提前致谢

【问题讨论】:

    标签: php wordpress user-roles capability


    【解决方案1】:

    如果您想为没有此角色的所有人隐藏菜单(add_menu_pageadd_submenu_page 不根据角色提供此菜单),您可以阻止它被添加给其他人。像这样修改igv_add_menu()函数:

    
    function igv_add_menu() {
      $role_name = 'custom_role';
      $user = wp_get_current_user();
      if ( in_array( $role_name, (array) $user->roles ) ) {
        add_menu_page( 'IGV', 'IGV', 'igv_gutscheinverwaltung', 'igv-menu', 'igv_dashboard', '', 99 );
        add_submenu_page( 'igv-menu', 'Import', 'Import', 'myCap', 'import', 'igv_import' );
        add_submenu_page( 'igv-menu', 'Ausgeben', 'Ausgeben', 'myCap', 'ausgeben', 'igv_ausgeben' );
        add_submenu_page( 'igv-menu', 'Entwerten', 'Entwerten', 'myCap', 'entwerten', 'igv_entwerten' );
        add_submenu_page( 'igv-menu', 'Alle Gutscheincodes', 'Alle Gutscheincodes', 'myCap', 'all_gutscheincodes', 'igv_all_gutscheincodes' );
        add_submenu_page( 'igv-menu', 'Händlerverwaltung', 'Händlerverwaltung', 'myCap', 'haendlerverwaltung', 'igv_haendlerverwaltung' );
        add_submenu_page( 'igv-menu', 'Händlersuche', 'Händlersuche', 'myCap', 'haendlersuche', 'igv_haendlersuche' );    
      }
    };
    

    $role_name 更改为您的角色名称。

    【讨论】:

      猜你喜欢
      • 2018-07-02
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 2013-04-06
      • 2013-10-28
      • 1970-01-01
      相关资源
      最近更新 更多