Benutzerdefinierte Admin-Menüfolge für alle Benutzerrollen

Ich habe die Elemente des Admin-Menüs wie folgt neu geordnet:

function custom_menu_order($menu_ord) { if (!$menu_ord) return true; return array( 'index.php', // Dashboard 'edit.php?post_type=page', // Pages 'edit.php?post_type=sp_faq', // FAQs '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 'options-general.php', // Settings ); } add_filter('custom_menu_order', 'custom_menu_order'); // Activate custom_menu_order add_filter('menu_order', 'custom_menu_order'); 

Dies funktioniert hervorragend für die Benutzerrolle Admin, funktioniert jedoch nicht für andere Rollen. Wie erweitere ich diese benutzerdefinierte Menüfolge auf alle Benutzerrollen?

Solutions Collecting From Web of "Benutzerdefinierte Admin-Menüfolge für alle Benutzerrollen"

Sie geben nicht an, ob Sie alle diese Elemente für alle Benutzerrollen verfügbar machen möchten (was bedeutet, dass Sie benutzerdefinierte functionen hinzufügen müssen). Daher nehme ich an, dass Sie nur die Möglichkeit haben möchten, die Menüfolge nach Benutzer anzupassen.

Mein Ansatz hierfür bestand darin, dem derzeit angemeldeten Benutzer alle Rollen zur Verfügung zu stellen und dann jede Rolle über einen Switch auszuführen, um die entsprechende Reihenfolge zu erhalten.

 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');