Ist es möglich, ein benutzerdefiniertes Post-Type-Menü als ein anderes benutzerdefiniertes Post-Type-Untermenü hinzuzufügen

Ich entwickle derzeit ein WordPress-Plugin, das zwei benutzerdefinierte Post-Typen verwendet. Was ich hier wissen möchte: Ist es möglich, ein benutzerdefiniertes Post-Menü als das Untermenü eines anderen benutzerdefinierten Post-Typs hinzuzufügen?

Solutions Collecting From Web of "Ist es möglich, ein benutzerdefiniertes Post-Type-Menü als ein anderes benutzerdefiniertes Post-Type-Untermenü hinzuzufügen"

Ja. Wenn Sie Ihren Post-Typ registrieren, müssen Sie show_in_menu auf der Seite show_in_menu auf der sie angezeigt werden soll.

Hinzufügen eines benutzerdefinierten Post-Typs als Untermenü von Posts

Hier stellen wir den Post-Typ “Filme” ein, der im Untermenü Posts enthalten sein soll.

 register_post_type( 'movies', array( 'labels' => array( 'name' => __( 'Movies' ), 'singular_name' => __( 'Movie' ) ), 'public' => true, 'has_archive' => true, 'show_in_menu' => 'edit.php' ) ); 

Wenn Sie eine Taxonomie für den benutzerdefinierten Posttyp registriert haben, muss diese ebenfalls zur Seite hinzugefügt werden.

In add_submenu_page() das erste Argument die Seite, der es zugeordnet werden soll, und das letzte ist das Menü slug.

 add_action('admin_menu', 'my_admin_menu'); function my_admin_menu() { add_submenu_page('edit.php', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre'); } 

Hinzufügen eines benutzerdefinierten Post-Typs als Untermenü eines anderen benutzerdefinierten Post-Typs

Um die Seiten zu einem anderen benutzerdefinierten Post-Typ hinzuzufügen, fügen Sie den Abfrage-String-Parameter des Post-Typs zusammen mit den Seitennamen hinzu.

Um die CPT-Filme und ihre Taxonomie Genre unter dem Post-Typ Unterhaltung hinzuzufügen, passen Sie den Code so an.

edit.php wird edit.php?post_type=entertainment

edit-tags.php wird zu edit-tags.php?taxonomy=genre&post_type=entertainment

 register_post_type( 'movies', array( 'labels' => array( 'name' => __( 'Movies' ), 'singular_name' => __( 'Movie' ) ), 'public' => true, 'has_archive' => true, 'show_in_menu' => 'edit.php?post_type=entertainment' ) ); add_action('admin_menu', 'my_admin_menu'); function my_admin_menu() { add_submenu_page('edit.php?post_type=entertainment', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre&post_type=entertainment'); } 

Unser benutzerdefinierter Beitragstyp:

 $args['show_in_menu'] = false; register_post_type('custom_plugin_post_type', $args); 

Fügen Sie ihn für den bestehenden benutzerdefinierten Posttyp hinzu (zum Beispiel “Produkt”):

 $existing_CPT_menu = 'edit.php?post_type=product'; $link_our_new_CPT = 'edit.php?post_type=custom_plugin_post_type'; add_submenu_page($existign_CPT_menu, 'SubmenuTitle', 'SubmenuTitle', 'manage_options', $link_our_new_CPT); 

Oder fügen Sie für unser benutzerdefiniertes Plugin-Menü hinzu:

 // Create plugin menu add_menu_page('MyPlugin', 'MyPlugin', 'manage_options', 'myPluginSlug', 'callback_render_plugin_menu'); // Create submenu with href to view custom_plugin_post_type $link_our_new_CPT = 'edit.php?post_type=custom_plugin_post_type'; add_submenu_page('myPluginSlug', 'SubmenuTitle', 'SubmenuTitle', 'manage_options', $link_our_new_CPT);