我找到了答案。简而言之:
解决方案1如果您想简单地向菜单项添加自定义帖子类型,请使用解决方案1(包括使用add_menu_page
和设置\'show_in_menu=>\'
到菜单页slug)。它可以工作,但如果您单击新创建的菜单页面,您将被重定向到第一个CPT(任何子页面都将被推到列表的末尾)。
解决方案2
如果要将自定义帖子类型分组,请单击菜单页上的子页面,然后选择解决方案2(请参见上面的更新):set
\'show_in_menu=> false\'
, 然后创建如下函数:
function create_menupages_252428() {
// https://developer.wordpress.org/reference/functions/add_menu_page/
add_menu_page(
\'Page\', // Page title
\'Page\', // Menu title
\'manage_options\', // Capability
\'page\', // Slug
\'mycustompage\', // Function name
\'dashicons-format-aside\', // Slug
1 // Order
);
// https://developer.wordpress.org/reference/functions/add_submenu_page/
add_submenu_page(
\'page\', // Parent slug
\'subpage\', // Page title
\'subpage\', // Menu title
\'manage_options\', // Capability
\'edit.php?post_type=CPT\', // Slug
false // Function
);
}
add_action(\'admin_menu\', \'create_menupages_252428\');
完成后,如果要在操作自定义帖子类型时将菜单页显示为活动状态,
function menu_active_252428() {
global $parent_file, $post_type;
if ( $post_type == \'CPT\' ) {
$parent_file = \'page\';
}
}
add_action( \'admin_head\', \'menu_active_252428\' );
如果您有机会找到更好的方法,请随时添加/更正我的解决方案!