Intereting Posts
Файлы SVG не загружаются с момента последнего обновления WP Пользовательская таксономия показывает только 0 в автозаполнении для терминов и «Выберите из наиболее используемых тегов» Синхронизация локального контента с сайтами разработки / размещения $ wpdb-> get_results утечка памяти Как можно улучшить эту грубую функцию? Как зарегистрировать пользователя в группе по коду приглашения? Открыть подкатегории в подменю при нажатии в основном меню Как отладить php-код в hostgator cPanel Как отобразить некоторые выбранные метаданные пользователя на определенной странице с помощью короткого кода? Хакеры попробовали имя пользователя с неправильным случаем Показать наибольшее количество сообщений в неделю Добавление вкладок справки к пользовательским типам сообщений Запрос отношения wordpress ajax Как сохранить различные параметры настройки с помощью API настроек и / или оптимизатора темы Как добавить подпапки в медиа-библиотеку для лучшей организации?

Удаление экрана Metabox из меню

Некоторое время врывался в файлы WP и думал, что я просто что-то пропустил. Конечная цель состоит в том, чтобы удалить метаконтакты Theme Locations из экрана Menus, если у кого-то нет определенных возможностей manage_options . Я знаю, немного странно для удобства использования, но есть только одно меню, и мы пытаемся сделать это труднее испортить;)

Глядя на /wp-admin/nav-menu.php вокруг строки 383 я вижу wp_nav_menu_setup() поэтому я попытался добавить следующее в качестве фильтра, но пока не повезло:

 function roots_remove_nav_menu_metaboxes() { // Remove Theme Locations from users without the 'manage_options' capability if (current_user_can('manage_options') == false) { remove_meta_box('wp_nav_menu_locations_meta_box', 'nav-menus', 'side'); // theme locations } } add_action('wp_nav_menu_setup', 'roots_remove_nav_menu_metaboxes',9999); 

Любая помощь могла бы быть полезна. Благодаря!

Solutions Collecting From Web of "Удаление экрана Metabox из меню"

Коробка добавляется в wp_nav_menu_setup (), поэтому вам придется удалить ее когда-то после этого и до того, как она будет выведена позже в nav-menus.php. Там, кажется, нет каких-либо действий, которые вы можете использовать там, но у admin-header.php есть несколько. Вы можете попробовать следующее:

 add_action( 'admin_head-nav-menus.php', 'roots_remove_nav_menu_metaboxes' ); 

Тем не менее, я никогда не пытался удалять обменные ящики с экрана меню, и он не тестировался, поэтому не знаю, работает ли он.

Я не думаю, что это крючок. На самом деле, похоже, совсем не подходит. Но внутри wp_nav_menu_setup() команды manage_nav-menus_columns вызываются вскоре после добавления обменных ящиков. Вы можете подключиться к нему и удалить его:

 add_action( 'manage_nav-menus_columns', 'my_remove_meta_locations_box' ); function my_remove_meta_locations_box($columns) { if ( ! current_user_can('manage_options') ) remove_meta_box('nav-menu-theme-locations', 'nav-menus', 'side'); return $columns; } 

Быстрый простой вариант – использовать плагин Adminimize , это поддерживает это как вариант для разных ролей.

Вместо удаления метабокса вы можете скрыть его с помощью CSS, например:

 #nav-menu-theme-locations { display: none; } 

Ваша проблема с удалением самого окна, скорее всего, является проблемой при заказе, либо пытается удалить ящик перед его добавлением, либо удалить его после того, как он уже был отправлен пользователю