Я действительно не знаю, как горячо задавать этот вопрос правильно. Я создал пользовательский тип сообщения с значками имен и добавил к нему пользовательские таксономии (уровень, умение). Теперь я хочу добавить новый элемент подменю в этот пользовательский пост. Это мой пользовательский пост:
add_action('init', 'bsp_badges_register'); function bsp_badges_register() { $labels = array( 'name' =>_x('Badges', 'post type general name'), 'singular_name' =>_x('Badge', 'post type singular name'), 'add_new' =>_x('Add New', 'badge item'), 'add_new_item' =>__('Add New Badge Item'), 'edit_item' =>__('Edit Badge Item'), 'new_item' =>__('New Badge Item'), 'view_item' =>__('View Badge Item'), 'search_items' =>__('Search Badge'), 'not_found' =>__('Nothing found'), 'not_found_in_trash' =>__('Nothing found in Trash'), 'parent_item_colon' => '' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'menu_icon' => 'dashicons-welcome-learn-more', 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_position' => 75, 'supports' => array('title','editor','thumbnail'), 'has_archive'=>true, 'show_in_menu'=>'badge-school' //'taxonomies' => array('post_tag','category') ); register_post_type( 'badge' , $args ); flush_rewrite_rules();
Одна из моих таксономий:
register_taxonomy( 'skills', array('badge'), array( 'hierarchical'=>true, 'public'=>true, 'label'=>'Skills', 'labels'=>array( 'name'=> _x( 'Skills', 'taxonomy general name' ), 'singular_name'=>'Skill', 'menu_name'=>__('Skills') ), 'show_ui'=>true, 'rewrite'=>array('slug'=>'skill'), ) );
Затем я попытался добавить такое подменю:
add_action('admin_menu','bsp_plugin_menu'); function bsp_plugin_menu(){ add_menu_page('Badge school', 'Badge School', 'manage_options','badge-school','bsp_students_function','dashicons-welcome-learn-more'); //my taxonomy add_submenu_page('edit.php?post_type=badge', 'Skills', 'Skills', 'manage_options', 'edit.php?taxonomy=skill&post_type=badge');
Но это не видно. Я вижу меню Значки и ничего больше. Также должно быть добавлено новое сообщение, и оно не отображается. Я не знаю, что я делаю неправильно и как это исправить. Мне нужно получить все это в одном меню, потому что мне нужно добавить больше подменю без таксономий.
Надеюсь, вы поймете мою проблему, как я уже говорил, я действительно не знаю, как задать вопрос.
Поэтому, чтобы ответить на мой собственный вопрос после многогоголоса:
В массиве args я прокомментировал параметр show_in_menu, так что пользовательский тип сообщения создает само меню. Тогда я не добавил меню администратора, а просто подменю (крюк все еще остается).
add_action('admin_menu','bsp_plugin_menu');
И первым параметром является тот, который показывает его в меню, и это имя типа персонализированного сообщения:
add_submenu_page(**'edit.php?post_type=badge'**, 'Add new students', 'Add new students', 'manage_options','add-new-students','bsp_students_add');
И теперь он отображается в меню со всеми таксономиями и настраиваемыми сообщениями.