我有一个名为的自定义帖子类型meeting
,我想将其编辑和列表屏幕添加为自定义菜单项 slug 下的单独子菜单项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'
. 我对这部分有点困惑,因为那不是只包括该帖子类型的编辑屏幕吗?自定义帖子类型有两个屏幕:编辑屏幕和列表屏幕(加上类别和标签,但在这种情况下我不需要这些)。
您如何区分两者并将自定义帖子类型的编辑和列表屏幕添加为上述常规管理菜单项的子菜单项?
add_submenu_page 函数的第一个参数是父 slug,在这种情况下'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
函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句