È possibile utilizzare remove_submenu_page()
- il trucco però è quello di ottenere la lumaca esattamente a destra, per fare questo il modo più semplice è quello di eseguire il dump dei $ sottomenu globale e verificare la menu_slug e submenu_slug.
global $submenu;
var_dump($submenu);
Questo darà la matrice di menu, il tasto di livello superiore è il menu_slug e quindi la corretta submenu_slug si trovano nell'elemento 2 delle matrici nidificate.
Quindi, se ho avuto un tipo di messaggio personalizzato denominato "my_events" e volevo rimuovere il menu tag da esso, la mia struttura del menu originale sarebbe simile a questa
...
'edit.php?post_type=my_events' =>
array
5 =>
array
0 => string 'All Events' (length=10)
1 => string 'edit_posts' (length=10)
2 => string 'edit.php?post_type=my_events' (length=28)
10 =>
array
0 => string 'Add New' (length=7)
1 => string 'edit_posts' (length=10)
2 => string 'post-new.php?post_type=my_events' (length=32)
15 =>
array
0 => string 'Tags' (length=4)
1 => string 'manage_categories' (length=17)
2 => string 'edit-tags.php?taxonomy=post_tag&post_type=my_events' (length=55)
...
Da questo si può vedere che il menu_slug è 'edit.php?post_type=my_events'
e il sottomenu slug per il menu dei tag è 'edit-tags.php?taxonomy=post_tag&post_type=my_events'
.
Quindi la funzione di chiamata remove sarebbe:
remove_submenu_page('edit.php?post_type=my_events', 'edit-tags.php?taxonomy=post_tag&post_type=my_events');
Si noti che la lumaca sottomenu è HTML codificata in modo la e commerciale è ora &
- questa è probabilmente quella cosa che ha reso difficile per le persone a lavorare fuori da primi principi come dovrebbe essere il nome della lumaca.
È un po 'sporco. Speravo che funzionasse con remove_submenu_page(), ma poiché è l'unica risposta (funzionante) si ottiene la risposta accettata :-) –