我想为多站点的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' );
问题在于,即使您以管理员身份或其他任何角色登录,用户角色也会显示插件。为什么?
也许您有任何想法,或者我只是看错了?
预先感谢
答案 0 :(得分:2)
如果您想为没有该角色的每个人隐藏菜单(add_menu_page
或add_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
更改为您的角色名称。