remove_submenu_page()
を使うことができますが、これを行うにはスラッグを正確に行うことが最も簡単です。これは、グローバル$サブメニューをダンプしてmenu_slugとsubmenu_slugを確認することです。
global $submenu;
var_dump($submenu);
これはあなたのメニューのアレイを与える、トップレベルの鍵はmenu_slugであり、正しいsubmenu_slugは、ネストされた配列の要素2に見出すことができます。私は「my_events」というカスタムポストタイプを持っていたし、私はそれから、タグのメニューを削除したい場合
だから、私のオリジナルのメニュー構造は、あなたがmenu_slugていることがわかります。このことから、この
...
'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)
...
ようになります。 'edit.php?post_type=my_events'
であり、タグメニューのサブメニューslugは'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であること - これはおそらく、それが難しい人々から出て作業するために作られたもののことです最初の原則はスラグの名前がすべきものです。
少し汚れています。私はremove_submenu_page()で動作することを期待していましたが、それが唯一の(動作している)回答であるため、受け入れられた答えを得ました:-) –