在管理中将CPT和分类分组到菜单组中

时间:2013-09-16 作者:Gawain

我有一组自定义的帖子类型,如“CPT a”、“CPT B”和“CPT C”。我将其中每个页面的管理页面显示为公共管理页面下的子页面。

add_menu_page(\'Console\',
    \'Console\',
    \'plugin_console\',
    \'plugin\',
    array ( $this, \'page_main\' ),
    "http://example.com/favicon.ico",
    6
    );
还有CPT的自定义分类法,其中一些是共享的。

我要做的是,在管理窗格中,从主菜单添加子菜单页面,该页面链接到编辑标签中的分类法。php。

add_submenu_page(\'plugin\',
    \'Taxonomy\',
    \'Taxonomy\',
    \'manage_options\',
    \'plugin-taxonomy\',
    array( $this, \'page_taxonomy\' )
    );
我遇到的问题是列表无法填充。欢迎就好的/更好的方法提出任何建议。

作为后续行动,我想要一个类似以下内容的菜单:

-Console
--CPT A
--CPT B
--CPT C
--Taxonomy 1
--Taxonomy 2

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

我们可以操纵全球$menu$submenu 内部admin_menu 钩但更容易让Mike Schinkel\'s WP Admin Menu Classes 照顾好它。

require_once(\'inc/wp-admin-menu-classes.php\');

add_action( \'admin_menu\', function()
{
    $plugin_page = \'wpse_114343\'; 
    add_menu_page(
        \'Console\',
        \'Console\',
        \'edit_pages\',
        $plugin_page,
        function() {},
        "http://cdn.sstatic.net/stackexchange/img/favicon.ico",
        6
    );
    // Move the CPT Movie and remove original
    $cpt = "edit.php?post_type=movie";
    copy_admin_menu_item( $plugin_page,$cpt );
    remove_admin_menu_section( $cpt );

    // Move the CPT Page and remove original
    $cpt2 = "edit.php?post_type=page";
    copy_admin_menu_item( $plugin_page, $cpt2 );
    remove_admin_menu_section( $cpt2 );

    // Move Posts Category and Tags and remove originals
    $cat = "edit-tags.php?taxonomy=category";
    $tag = "edit-tags.php?taxonomy=post_tag";
    $tax_menu = \'edit.php\';
    copy_admin_menu_item( $plugin_page, $tax_menu, $cat );
    copy_admin_menu_item( $plugin_page, $tax_menu, $tag );
    remove_admin_menu_item( $tax_menu, $cat );
    remove_admin_menu_item( $tax_menu, $tag );
});
manipulated wp-admin menu and sub-menu

结束