Risposte:
Sì. Quando registri il tuo tipo di post, devi impostare show_in_menu
la pagina su cui desideri visualizzarla.
Qui impostiamo il tipo di post "film" da includere nel sottomenu Post.
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php'
)
);
Se hai una tassonomia registrata nel tipo di posta personalizzato, dovrà essere aggiunta anche alla pagina.
Nel add_submenu_page()
primo argomento è la pagina a cui assegnarlo e l'ultimo è la lumaca del 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');
}
Per aggiungere le pagine a un altro tipo di post personalizzato, includere il parametro della stringa di query del tipo di post insieme ai nomi delle pagine.
Per aggiungere i film CPT e il suo genere di tassonomia sotto il tipo di post Intrattenimento, modifica il codice in questo modo.
edit.php
diventa edit.php?post_type=entertainment
edit-tags.php
diventa 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
attributo, non ha funzionato per me.
Il nostro tipo di post personalizzato:
$args['show_in_menu'] = false;
register_post_type('custom_plugin_post_type', $args);
Aggiungilo per il tipo di posta personalizzato esistente (ad esempio "prodotto"):
$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);
Oppure aggiungi per il nostro menu plug-in personalizzato:
// 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);