我有一个名为meeting的自定义post类型,我希望将它的编辑和列表屏幕添加为自定义菜单项段段式meetings_settings下的单独子菜单项。
这是我现在的菜单设置
add_action('admin_menu', 'wf_meetings_menu');
function wf_meetings_menu() {
add_menu_page('Meetings', 'Meetings', 'manage_options', 'meetings_menu', 'meetings_settings');
add_submenu_page('meetings_menu', 'Meetings Settings', 'Settings', 'manage_options', 'meetings_menu_settings', 'meetings_settings');
// meetings list screen goes here
add_submenu_page('meetings_menu', 'All Meetings', 'All Meetings', 'manage_options', 'meetings_menu_all', 'meetings_all');
// meetings edit screen goes here
add_submenu_page('meetings_menu', 'New Meeting', 'New Meeting', 'manage_options', 'meetings_menu_new', 'meetings_new');
}根据研究结果,您可以在定制post类型上设置show_in_menu => 'edit.php?post_type=meeting',然后将子菜项的绘图函数设置为'edit.php?post_type=meeting',从而将自定义post类型添加为子菜单。我对这个部分有点困惑,因为这不只是包含该帖子类型的编辑屏幕吗?自定义post类型有两个屏幕:编辑屏幕和列表屏幕(加上类别和标记,但在本例中我不需要它们)。
您如何区分这两者,并添加编辑和列表屏幕的自定义post类型作为一个常规管理菜单项的子菜单项目,如上面?
发布于 2018-12-07 15:39:40
add_submenu_page函数的第一个参数是父片段,在本例中是'edit.php?post_type=meeting',在您的场景中,您需要添加一个链接到post类型编辑屏幕的自定义链接。因此,您将在functions.php中添加一个函数,该函数将手动添加链接
add_action('admin_menu', 'meetings_admin_menu');
function meetings_admin_menu() {
global $submenu;
$new_url = 'post-new.php?post_type=meeting';
$all_url = 'edit.php?post_type=meeting';
$submenu['meetings_menu'][] = array('New Meeting', 'edit_posts', $new_url);
$submenu['meetings_menu'][] = array('All Meetings', 'edit_posts', $all_url);
}注意:$submenu array()中的第二个参数是权限。相应变化
现在您只需要您的add_menu_page函数。
https://stackoverflow.com/questions/53672246
复制相似问题