3

分類法を使用してカスタム投稿タイプを作成すると、すべて正常に動作します。WordPress でメイン メニューを作成します。

MyCustomPost
   +----------> MyCustomPost
   +----------> Add New
   +----------> My Taxonomy

ただし、次のような独自のメニューを作成するのが好きです。

MyTitle
   +----------> MyCustomPost
   +----------> Add New
   +----------> My Taxonomy

だから、私は自分のメニューを作成します:

        $menu_main = add_menu_page( 'MyMenu', 'MyMenu', 'edit_posts', 'my_menu_key', array( $this, 'menu_main'), $icon_menu, 100 );

show_in_menuで設定したカスタム投稿タイプを登録するmy_menu_keyと、その作品。

MyMenu
   +----------> MyCustomPost

問題は、分類法はどこにあるのかということです。および `新しいサブメニューを追加しますか? 何か案が?

4

2 に答える 2

1

$submenu グローバルを操作する代わりに、組み込みの WordPress 関数を使用してこれを実現し、将来の互換性を向上させることができます。

add_action('admin_menu', 'add_tax_menus');
function add_tax_menus() {
    $key = 'edit.php?post_type=CUSTOM_POST_TYPE_SLUG';
    add_submenu_page($key, 'My Page Title', 'My Menu Title', 'manage_categories', 'edit-tags.php?taxonomy=TAXONOMY_SLUG&post_type=CUSTOM_POST_TYPE_SLUG');
}
于 2014-07-07T17:21:23.470 に答える
1

とのナイストリックshow_in_menu。しかし、分類サブメニューはハードコーディングされた方法で構築されており、そのようなパラメーターは必要ありregister_taxonomy ません。おそらく、Add Newサブメニューも同じように機能します。

回避策は、次を操作することglobal $submenuです。

// PHP 5.3+ anonymous function
add_action( 'admin_init', function() {
    global $submenu; 
    $submenu['my_menu_key'][10] = $submenu['edit.php?post_type=YOUR-CPT-SLUG'][10];
    $submenu['my_menu_key'][15] = $submenu['edit.php?post_type=YOUR-CPT-SLUG'][15];
});
于 2013-09-06T18:01:08.287 に答える