Удаление или перемещение подменю администратора в новом меню

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

Solutions Collecting From Web of "Удаление или перемещение подменю администратора в новом меню"

Задайте аргумент

'show_in_menu' => false 

в то время как регистрация вашего сообщения с помощью register_post_type () заставит административные меню игнорировать этот тип сообщения, поэтому это лучшее решение для скрытия меню.

Если вы не можете получить к нему доступ, вы можете подключить функцию к admin_menu для добавления или удаления меню и подменю.

Вот пример. Мы создали тип публикации «artist», но нам не нужно меню администратора художника. Мы хотели бы поставить его под меню «музыка»; которые будут иметь различные другие подменю.

  add_action( 'admin_menu', 'adjust_admin_menu' ); function adjust_admin_menu(){ $menu_slug = 'music'; //menu slug (or path to file); as ID $post_type_artist_slug = 'artist'; $post_type_artist = get_post_type_object($post_type_artist_slug); /////Delete the menu generated by register_post_type() for our custom post type 'artist'. When registering a post type, setting $remove_menu_slug = sprintf('edit.php?post_type=%s',$post_type_artist_slug); //menu slug (here, a path to file); as ID //remove the menu remove_menu_page( $remove_menu_slug ); /* //OR remove the 'add new' submenu remove_submenu_page( $remove_menu_slug, sprintf('post-new.php?post_type=%s',$post_type_artist_slug) //SUBmenu slug (here, a path to file); as ID ); */ /////Create our custom menu $this->menu_page = add_menu_page( __( 'Music', 'music-plugin' ), //page title - I never understood why this parameter is needed for. Put what you like ? __( 'Music', 'music-plugin' ), //menu title 'manage_options', //cappability $menu_slug, array($this,'settings_page'), //this function will output the content of the 'Music' page. 'dashicons-album', // an image would be 'plugins_url( 'myplugin/images/icon.png' )'; but for core icons, see https://developer.wordpress.org/resource/dashicons 6 ); ////Add submenus add_submenu_page( $menu_slug, $post_type_artist->labels->name, //page title - I never understood why this parameter is needed for. Put what you like ? $post_type_artist->labels->name, //submenu title 'edit_posts', sprintf('edit.php?post_type=%s',$post_type_artist_slug) //SUBmenu slug (here, a path to a file); as ID ); add_submenu_page( $menu_slug, $post_type_artist->labels->add_new_item, $post_type_artist->labels->add_new_item, 'edit_posts', sprintf('post-new.php?post_type=%s',$post_type_artist_slug) //SUBmenu slug (here, a path to a file); as ID ); }