Custom Post Type Menus

时间:2011-02-03 作者:Zack

我正在写一个插件,因为我们的主要网站最终将被移植到WordPress。我已经为这个插件计划了多个自定义帖子类型,并希望将它们全部组合到一个主菜单中。

大体上I want the "Visitors" link to be placed under "Argus Admin". 没有必要添加其他链接,因为我可以在任何地方“黑客”这些链接。

    $v_args = array(
        \'labels\' => array (
                \'name\' => \'Visitors\',
                \'singular_name\' => \'Visitor\',
                \'add_new_item\' => \'Register New Visitor\', // TODO: http://codex.wordpress.org/Function_Reference/register_post_type#Arguments
            ),
        \'public\' => true,
        \'publicly_queryable\' => false,
        \'exclude_from_search\' => true,
        \'show_ui\' => true,
        \'show_in_menu\' => \'argus\',  // TODO: This doesn\'t work...
        \'hiearchical\' => false,
        \'supports\' => array( \'\' ),
        \'register_meta_box_cb\' => array ( &$this, \'_wp_visitor_meta_box_cb\' ),
    );

    register_post_type( $post_type, $v_args );
我创建的“我的菜单”页面:

add_menu_page( \'Argus\', \'Argus Admin\', \'manage_options\', \'argus\', array( &$this, \'_wp_argus_main_panel\' ), \'\', -1 );

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

你说得对,但你需要等待WordPress 3.1的实际实现。如果您不能等待,可以将“show\\u in\\u menu”更改为false,并使用add\\u submenu\\u page()函数将“argus”定义为首页,并在argus Admin菜单下“手动”添加访问者。

因此,您的代码是:

$v_args = array(
        \'labels\' => array (
                \'name\' => \'Visitors\',
                \'singular_name\' => \'Visitor\',
                \'add_new_item\' => \'Register New Visitor\',
            ),
        \'public\' => true,
        \'publicly_queryable\' => false,
        \'exclude_from_search\' => true,
        \'show_ui\' => true,
        \'show_in_menu\' => \'flase\',
        \'hiearchical\' => false,
        \'supports\' => array( \'\' ),
        \'register_meta_box_cb\' => array ( &$this, \'_wp_visitor_meta_box_cb\' ),
    );

    register_post_type( $post_type, $v_args );
然后

add_menu_page( \'Argus\', \'Argus Admin\', \'manage_options\', \'argus\', array( &$this, \'_wp_argus_main_panel\' ), \'\', -1 );
add_submenu_page( argus, \'Visitors\', \'Visitors\', \'manage_options\' , \'visitors\' , \'edit.php?post_type=visitors\'); 
希望这有帮助

SO网友:John P Bloch

如果这最终将被移植到WordPress(如中所述,不会再持续几周),我建议等待WordPress 3.1的发布。很快就要交了,而且已经交了。当然,你可以跳过等待,直接在trunk上开发。您在3.1中的操作方式应该可以正常工作,没有任何更改。

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph