我目前正在开发一个wordpress插件,它使用两种自定义帖子类型。我想知道的是:是否可以添加一个自定义帖子类型菜单作为另一个自定义帖子类型的子菜单?
是否可以将自定义投递类型菜单添加为另一个自定义投递类型子菜单
3 个回复
最合适的回答,由SO网友:epilektric 整理而成
对注册帖子类型时,需要设置show_in_menu
到您希望在其上显示的页面。
添加自定义帖子类型作为帖子的子菜单这里我们将“movies”帖子类型设置为包含在帖子下的子菜单中。
register_post_type( \'movies\',
array(
\'labels\' => array(
\'name\' => __( \'Movies\' ),
\'singular_name\' => __( \'Movie\' )
),
\'public\' => true,
\'has_archive\' => true,
\'show_in_menu\' => \'edit.php\'
)
);
如果您已将分类注册到自定义帖子类型,则还需要将其添加到页面中。在里面add_submenu_page()
第一个参数是要分配给它的页面,最后一个参数是菜单slug。
add_action(\'admin_menu\', \'my_admin_menu\');
function my_admin_menu() {
add_submenu_page(\'edit.php\', \'Genre\', \'Genre\', \'manage_options\', \'edit-tags.php?taxonomy=genre\');
}
添加自定义帖子类型作为另一个自定义帖子类型的子菜单要将页面添加到另一个自定义帖子类型,请包括帖子类型的查询字符串参数以及页面名称。要在post-type Entertainment下添加CPT电影及其分类流派,请调整如下代码。
edit.php
成为edit.php?post_type=entertainment
edit-tags.php
成为edit-tags.php?taxonomy=genre&post_type=entertainment
register_post_type( \'movies\',
array(
\'labels\' => array(
\'name\' => __( \'Movies\' ),
\'singular_name\' => __( \'Movie\' )
),
\'public\' => true,
\'has_archive\' => true,
\'show_in_menu\' => \'edit.php?post_type=entertainment\'
)
);
add_action(\'admin_menu\', \'my_admin_menu\');
function my_admin_menu() {
add_submenu_page(\'edit.php?post_type=entertainment\', \'Genre\', \'Genre\', \'manage_options\', \'edit-tags.php?taxonomy=genre&post_type=entertainment\');
}
SO网友:ConConovaloff
我们的自定义帖子类型:
$args[\'show_in_menu\'] = false;
register_post_type(\'custom_plugin_post_type\', $args);
为现有自定义帖子类型添加他(例如“产品”):$existing_CPT_menu = \'edit.php?post_type=product\';
$link_our_new_CPT = \'edit.php?post_type=custom_plugin_post_type\';
add_submenu_page($existign_CPT_menu, \'SubmenuTitle\', \'SubmenuTitle\', \'manage_options\', $link_our_new_CPT);
或添加自定义插件菜单:// Create plugin menu
add_menu_page(\'MyPlugin\', \'MyPlugin\', \'manage_options\', \'myPluginSlug\', \'callback_render_plugin_menu\');
// Create submenu with href to view custom_plugin_post_type
$link_our_new_CPT = \'edit.php?post_type=custom_plugin_post_type\';
add_submenu_page(\'myPluginSlug\', \'SubmenuTitle\', \'SubmenuTitle\', \'manage_options\', $link_our_new_CPT);
SO网友:jimver04
这对我很有用
add_action(\'admin_menu\', \'vrodos_plugin_menu\');
function vrodos_plugin_menu(){
add_menu_page( \'VRodos Plugin Page\',
\'VRodos\',
\'manage_options\',
\'vrodos-plugin\',
\'vrodos_plugin_main_page\');
add_submenu_page(\'vrodos-plugin\',
\'Games\',
\'Games\',
\'manage_options\',
\'edit.php?post_type=vrodos_game\'
);
}
当我注册cpt“vrodos\\u游戏”时,我设置 \'show_ui\' => true,
\'show_in_menu\' => false,
结束