Answers:
是。注册帖子类型时,需要将其设置show_in_menu
为您希望在其上显示的页面。
在这里,我们将“电影”帖子类型设置为包含在“帖子”下的子菜单中。
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()
第一个参数是将其分配到的页面,最后是菜单蛞蝓。
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');
}
要将页面添加到其他自定义帖子类型中,请包括帖子类型的查询字符串参数以及页面名称。
要在“娱乐”类型下添加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');
}
show_in_menu
属性对我不起作用。
我们的自定义帖子类型:
$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);