Réponses:
Oui. Lorsque vous enregistrez votre type de publication, vous devez définir show_in_menu
la page sur laquelle vous souhaitez qu'il s'affiche.
Ici, nous définissons le type de publication "films" à inclure dans le sous-menu sous Publications.
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php'
)
);
Si vous avez une taxonomie enregistrée pour le type de publication personnalisé, elle devra également être ajoutée à la page.
Dans add_submenu_page()
le premier argument se trouve la page à laquelle l'affecter et le dernier est le slug du menu.
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');
}
Pour ajouter les pages à un autre type de publication personnalisé, incluez le paramètre de chaîne de requête du type de publication ainsi que les noms de page.
Pour ajouter les films CPT et son genre de taxonomie sous le type de publication Divertissement, ajustez le code comme ceci.
edit.php
devient edit.php?post_type=entertainment
edit-tags.php
devient 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');
}
show_in_menu
attribut, n'a pas fonctionné pour moi.
Notre type de message personnalisé:
$args['show_in_menu'] = false;
register_post_type('custom_plugin_post_type', $args);
Ajoutez-le pour le type de publication personnalisé existant ("produit" par exemple):
$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);
Ou ajoutez pour notre menu de plugin personnalisé:
// 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);