#1 楼
是。注册帖子类型时,需要将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电影及其分类类型,请调整代码,如下所示。 br />
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');
}
#2 楼
我们的自定义帖子类型:$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);
评论
谢谢!对我有帮助。
– NSukonny
19年11月27日在11:39
评论
你好谢谢。有用。但是子菜单cpt丢失了其子菜单。
–阿里
13年8月18日在18:00
我已经用一种包含分类法的方法来更新我的答案。
–上电
13年8月21日在11:58
嗨,谢谢你!我已经找到了方法!但是也许您的会给出更好的结果!
–阿里
13年8月21日在12:57
show_in_menu属性对我不起作用。
–弗朗西斯科·科拉莱斯·莫拉莱斯(Francisco Corrales Morales)
15年2月26日在22:08
很抱歉重复。为了使子菜单和paretn菜单保持突出显示状态,您需要给WP一些信息。好的,当屏幕上显示“ my_post_type”时,“ show_in_menu”参数使子菜单为当前/突出显示。现在,我们还需要添加另一个操作,该操作将突出显示父菜单。您可以尝试以下方法:add_filter('parent_file','menu_highlight'));功能menu_highlight($ parent_file){全局$ plugin_page,$ post_type;如果('my_post_type'== $ post_type){$ plugin_page ='edit.php?post_type = my_post_type'; //子菜单挂钩名称} return $ parent_file; }
– TomeeNS
17年5月26日在15:59