add_submenu_page()
add_submenu_page( string $parent_slug, string $page_tit…
add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = ”, int $position = null )
添加子菜单页。
Add a submenu page.
目录锚点:#说明#参数#返回#源码#笔记
说明(Description)
此函数具有用于确定菜单中是否包含页面的功能。
连接以处理页面输出的函数必须检查用户是否也具有所需的功能。
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$parent_slug | (string) | 必需 | 父菜单的slug名称(或标准WordPress管理页的文件名)。 |
$page_title | (string) | 必需 | 选择菜单时要在页面标题标记中显示的文本。 |
$menu_title | (string) | 必需 | 用于菜单的文本。 |
$capability | (string) | 必需 | 向用户显示此菜单所需的功能。 |
$menu_slug | (string) | 必需 | 用于引用此菜单的slug名称。对于此菜单应该是唯一的,并且只包含小写字母数字、破折号和下划线字符,以便与sanitize_key()兼容。 |
$function | (callable) | 可选 | 要调用以输出此页内容的函数。 |
$position | (int) | 可选 | 此项在菜单中的显示顺序。 |
返回(Return)
(string|false)结果页的hook_后缀,如果用户没有所需的功能,则为false。
源码(Source)
/** * Add a sub menu page * * This function takes a capability which will be used to determine whether * or not a page is included in the menu. * * The function which is hooked in to handle the output of the page must check * that the user has the required capability as well. * * @global array $submenu * @global array $menu * @global type $_wp_real_parent_file * @global bool $_wp_submenu_nopriv * @global array $_registered_pages * @global array $_parent_pages * * @param string $parent_slug The slug name for the parent menu (or the file name of a standard WordPress admin page) * @param string $page_title The text to be displayed in the title tags of the page when the menu is selected * @param string $menu_title The text to be used for the menu * @param string $capability The capability required for this menu to be displayed to the user. * @param string $menu_slug The slug name to refer to this menu by (should be unique for this menu) * @param callback $function The function to be called to output the content for this page. * * @return false|string The resulting page's hook_suffix, or false if the user does not have the capability required. */ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function = '' ) { global $submenu, $menu, $_wp_real_parent_file, $_wp_submenu_nopriv, $_registered_pages, $_parent_pages; $menu_slug = plugin_basename( $menu_slug ); $parent_slug = plugin_basename( $parent_slug); if ( isset( $_wp_real_parent_file[$parent_slug] ) ) $parent_slug = $_wp_real_parent_file[$parent_slug]; if ( !current_user_can( $capability ) ) { $_wp_submenu_nopriv[$parent_slug][$menu_slug] = true; return false; } /* * If the parent doesn't already have a submenu, add a link to the parent * as the first item in the submenu. If the submenu file is the same as the * parent file someone is trying to link back to the parent manually. In * this case, don't automatically add a link back to avoid duplication. */ if (!isset( $submenu[$parent_slug] ) && $menu_slug != $parent_slug ) { foreach ( (array)$menu as $parent_menu ) { if ( $parent_menu[2] == $parent_slug && current_user_can( $parent_menu[1] ) ) $submenu[$parent_slug][] = array_slice( $parent_menu, 0, 4 ); } } $submenu[$parent_slug][] = array ( $menu_title, $capability, $menu_slug, $page_title ); $hookname = get_plugin_page_hookname( $menu_slug, $parent_slug); if (!empty ( $function ) && !empty ( $hookname )) add_action( $hookname, $function ); $_registered_pages[$hookname] = true; /* * Backward-compatibility for plugins using add_management page. * See wp-admin/admin.php for redirect from edit.php to tools.php */ if ( 'tools.php' == $parent_slug ) $_registered_pages[get_plugin_page_hookname( $menu_slug, 'edit.php')] = true; // No parent as top level. $_parent_pages[$menu_slug] = $parent_slug; return $hookname; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
5.3.0 | wp-admin/includes/plugin.php:1358 | 13 | 6 |
笔记(Notes)
$parent_slug的slug(第一个参数)
使用add_menu_page()创建的内部菜单
将子菜单页添加到自定义文章类型
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!