您可以使用remove_submenu_page()
- 然而,訣竅就是讓slug完全正確,做到這一點最簡單的方法是轉儲全局$子菜單並檢查menu_slug和submenu_slug。
global $submenu;
var_dump($submenu);
這會給你菜單的陣列,所述頂層關鍵是menu_slug然後正確submenu_slug可以在元件嵌套陣列2中找到。
所以,如果我有一個自定義後類型,稱爲「my_events」,我想從中刪除標籤的菜單,我原來的菜單結構是這樣的
...
'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)
...
從這裏就可以看出,menu_slug是'edit.php?post_type=my_events'
和標籤菜單的子菜單蛞蝓是'edit-tags.php?taxonomy=post_tag&post_type=my_events'
。
所以remove函數調用將是:
remove_submenu_page('edit.php?post_type=my_events', 'edit-tags.php?taxonomy=post_tag&post_type=my_events');
注意,子菜單金屬塊HTML編碼,這樣的符號現在&
- 這大概是那件事已經使得它的人很難從工作了第一個原則是什麼應該是slug的名字。
這是一個有點髒。我希望它能夠與remove_submenu_page()一起工作,但是因爲它是唯一的(工作)答案,所以你得到了接受的答案:-) –