Intereting Posts
Сеть сайтов с подпапками разбиение на страницы данных с использованием SQL-запроса Customizer – загрузка настроек / элементов управления / разделов / панелей на основе идентификатора id / page id Как удалить переходные процессы, написанные fetch_feed ()? сохранить пользовательский термин – hook create_term не работает Как я могу выполнить набор изменений .diff из core.trac.wordpress.org локально? Сохранение пользовательской мета-информации при регистрации Блог показывает только липкие сообщения Запрос для пользовательского пользовательского интерфейса пользовательского типа не перекрывает всю почту Если meta_value = 'yes', то добавьте класс? Как проверить, создан ли сайт wordpress? Как создать новую таблицу базы данных всякий раз, когда пользователь меняет параметры Что подразумевается под __ («страница», «двадцать четвертая») Копирование миниатюр сообщения в настраиваемое поле wp_query за прошлый месяц + сортировать сообщения

Пользовательское меню администратора для всех ролей пользователей

Я переупорядочил элементы меню администратора через:

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

Это отлично работает для роли пользователя Admin, однако не работает для других ролей. Как расширить этот пользовательский порядок меню ко всем ролям пользователей?

Вы не указываете, пытаетесь ли вы сделать все эти элементы доступными для всех ролей пользователей (что означает необходимость добавления пользовательских возможностей), поэтому я предполагаю, что вы хотите только настроить пользовательский порядок меню.

Мой подход к этому заключался в том, чтобы получить все роли для текущего пользователя в системе, а затем запустить каждую роль с помощью переключателя, чтобы получить соответствующий порядок.

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