您没有指定是否要使所有用户角色都可以使用所有这些项目(这意味着必须添加自定义功能),因此我假设您只希望能够按用户自定义菜单顺序。
我的方法是让当前登录的用户可以使用所有角色,然后通过开关运行每个角色以获得适当的顺序。
function my_custom_menu_order( $menu_ord) {
$curr_id = get_current_user_id();
$user = new WP_User( $curr_id );
if ( !empty( $user->roles ) && is_array( $user->roles ) ) {
foreach ( $user->roles as $role ){
switch($role){
case \'administrator\':
if (!$menu_ord) return true;
return array(
\'options-general.php\', // Settings
\'index.php\', // Dashboard
\'edit.php?post_type=page\', // Pages
\'edit.php?post_type=faq\', // FAQs
\'options-general.php\', // Settings
\'gf_edit_forms\', // Forms
\'woocommerce\', // Woocommerce
\'edit.php?post_type=product\', //Products
\'edit.php\', // Posts/News
\'edit.php?post_type=event\', // Events
\'upload.php\', // Media
\'themes.php\', // Appearance
\'plugins.php\', // Plugins
\'users.php\', // Users
\'tools.php\', // Tools
);
break;
case \'editor\':
if (!$menu_ord) return true;
return array(
\'edit.php?post_type=event\', // Events
\'index.php\', // Dashboard
\'edit.php?post_type=page\', // Pages
\'edit.php?post_type=faq\', // FAQs
\'options-general.php\', // Settings
\'gf_edit_forms\', // Forms
\'woocommerce\', // Woocommerce
\'edit.php?post_type=product\', //Products
\'edit.php\', // Posts/News
\'upload.php\', // Media
\'themes.php\', // Appearance
\'plugins.php\', // Plugins
\'users.php\', // Users
\'options-general.php\', // Settings
\'tools.php\', // Tools
);
break;
default:
break;
}
}
}
add_filter(\'custom_menu_order\', \'my_custom_menu_order\');
add_filter(\'menu_order\', \'my_custom_menu_order\');