在一个菜单条目上注册多个POST类型

时间:2011-11-17 作者:kaiser

案例:

Iregister_post_type() 3种不同的CPT

示例:3种帖子类型,分别命名为聚会、事件、地点。数组中所需的其他参数被省略。

register_post_type(
     \'party\'
    ,array( 
        \'show_in_menu\' // true (for main) or "edit.php?post_type=party (for subentries)
     )
);
然后我设置\'show_in_menu\' 第一个CPT项目(也称为“一方”)的论点true\'show_in_menu\' 到\'edit.php?post_type=partyenter image description here

这有什么意义?我所期望的是Add New“菜单项适用于所有CPT,而不仅仅适用于主CPT。

如何设置参数,使其不仅可以获取列表视图,还可以获取单个新建/编辑屏幕?

注意:

我知道,我Add New 按钮,但我想知道如何将这些链接添加到管理菜单项。

我也知道我可以

add_submenu_page(
     "edit.php?post_type=party"
    ,"Add New"
    ,"Add New"
    ,"post-new.php?post_type=party"
);
但我对周围的工作不感兴趣。我想知道这是如何被认为是开箱即用的。

CPT=自定义职位类型的缩写

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

据我所知,以这种方式定制菜单是不够友好的。我最近要做的是使用remove_submenu_page 对于所有子菜单项,然后使用add_submenu_page.

一个简单的例子

 //this was first sub-menu item I did not want it #1
 remove_submenu_page( \'edit.php?post_type=test\', \'edit.php?post_type=test\' );

 // add the actual sub-menu item I wanted as #1
 add_submenu_page(\'edit.php?post_type=hello\',\'Hello\', \'Hello\', \'manage_options\', \'my_hello\', \'my_hello_options\');

//re-add the orginal #1 item removed above so it is now the #2 item
 add_submenu_page(\'edit.php?post_type=test\',\'Edit Test\', \'Edit Test\', \'manage_options\', \'edit.php?post_type=test\');
<小时>Edit: 如果您计划使用menu_order 过滤器,让过滤器工作起来很简单:只需在其前面添加这一行即可。否则它会跳过menu_order 过滤器:add_filter( \'custom_menu_order\', \'__return_true\' );.

结束

相关推荐