将自定义帖子类型的编辑和列表屏幕显示为单独的子菜单项

时间:2018-12-07 15:14:18

标签: wordpress

我有一个名为meeting的自定义帖子类型,我想将其编辑和列表屏幕作为单独的子菜单项添加到自定义菜单项“ 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');
}

从研究中可以看出,您可以通过在自定义帖子类型上设置show_in_menu => 'edit.php?post_type=meeting',然后将子菜单项的绘图功能设置为'edit.php?post_type=meeting',来添加自定义帖子类型作为子菜单。我对这部分有些困惑,因为那不仅仅包括该帖子类型的编辑屏幕吗?自定义帖子类型有两个屏幕:编辑屏幕和列表屏幕(加上类别和标签,但在这种情况下我不需要这些)。

您如何区分两者,并将自定义帖子类型的编辑和列表屏幕添加为上述常规管理菜单项的子菜单项?

1 个答案:

答案 0 :(得分:1)

add_submenu_page函数的第一个参数是父子级,在您的情况下,它是'edit.php?post_type=meeting',您想添加一个自定义链接,该链接链接到文章类型编辑屏幕。因此您可以在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函数。