Коллекция пользовательских типов сообщений, отображаемых в подменю

У меня WordPress 4.6.1. Теперь у меня есть опыт создания пользовательских типов сообщений и просмотра их в консоли консоли администратора. Но как я могу создать стек всех моих пользовательских типов сообщений в меню, чтобы при переходе на wp-admin, я вижу слева кнопку с именем My Post Types , и если я на нее курю , она показывает мне все моих пользовательских типов сообщений, отображаемых в формате списка.

Solutions Collecting From Web of "Коллекция пользовательских типов сообщений, отображаемых в подменю"

Я собираюсь предположить, когда вы говорите, что вы «наводите на него курсор, он показывает пользовательские типы сообщений, отображаемые в списке», вы имеете в виду подменю. Ниже используется admin_menu для создания пустого родительского меню, после чего мы просматриваем типы публичных сообщений, чтобы отображать их как подменю:

 /** * Add an Admin Menu which contains submenus of public post types * - https://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu * - https://developer.wordpress.org/reference/hooks/admin_menu/ * * @return void */ function wpse_q_241760() { $post_types = get_post_types( array( 'public' => true, ), 'objects' ); if( ! empty( $post_types ) ) { add_menu_page( 'Post Types', // Page Title ( doesn't matter ) 'Post Types', // Menu Title 'edit_posts', // Capability to view this menu item 'javascript:void(0);', // URL ( slug ) '', // Callback Function 'dashicons-book', // Dashicon 24 // Menu Position ); foreach( $post_types as $type ) { add_submenu_page( 'javascript:void(0);', // Parent URL Slug $type->labels->name, // Page Title ( doesn't matter in this case ) $type->labels->name, // Menu Title 'edit_posts', // Cability to view "edit.php?post_type={$type->name}" // URL ( slug ) ); } remove_submenu_page( 'javascript:void(0);', 'javascript:void(0);' ); } } add_action( 'admin_menu', 'wpse_q_241760' ); 

Вышеупомянутая add_menu_page() должна быть передана какая-то ссылка – так как нам нечего было показывать по этой ссылке (на этой странице нет post_type , это фиктивная страница) Я решил связать с javascript:void(0); вместо этого, что говорит нашему браузеру о том, чтобы никуда не плавать. Это позволяет нам вместо этого навести элемент меню и щелкнуть одну из ссылок типа «Тип сообщения». Он также добавил подменю с тем же именем, но нам это не нужно, поэтому мы удаляем его в конце вызова функции.

Функция get_post_types() имеет несколько параметров для фильтрации, если public не работает для вашего случая.