WordPress开发函数add_theme_page()
WordPress开发函数add_theme_page(),添加子菜单页到外观主菜单。
用法:
add_theme_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = ”, int $position = null )
描述:
该函数具有一种功能,用于确定菜单中是否包含某个页面。
用于处理页面输出的函数也必须检查用户是否具备所需的功能。
参数:
$page_title
(string) (必需) 选中菜单时要在页面标题标签中显示的文本。
$menu_title
(string) (必需) 要用于菜单的文本。
$capability
(string) (必需) 向用户显示该菜单所需的功能。要用于菜单的文本。
$menu_slug
(string) (必需) 用来引用这个菜单的slug名称(对于这个菜单应该是唯一的)。
$function
(callable) (可选) 用于输出此页面内容的函数。
默认值: ”
$position
(int) (可选) 该项目应出现在菜单顺序中的位置。
默认值: null
返回
(string|false)结果页面的hook_suffix,如果用户不具备所需的能力则为false。
更多信息
这个函数是一个简单的包装器,用于调用add_submenu_page(),传递接收到的参数并指定’themes ‘。php’作为$parent_slug参数。这意味着新页面将作为子菜单添加到外观菜单中。
$capability参数用于根据当前用户的角色和功能确定该页面是否包含在菜单中。
处理options页面输出的函数还应该验证用户的能力。
来源
文件: wp-admin/includes/plugin.php
function add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function = ”, $position = null ) {
return add_submenu_page( ‘themes.php’, $page_title, $menu_title, $capability, $menu_slug, $function, $position );
}
更新日志:
用户贡献的笔记
(由johnnyhuy贡献- 3年前)
这是来自WordPress法典,它规定add_theme_page必须被提前调用。因此,调用’ admin_init ‘钩子中的函数将使角色功能在创建主题页时无效。
使用’ admin_menu ‘钩子来代替下面的示例:
function add_test_theme_page() {
add_theme_page( ‘Theme Title Settings’, ‘Theme Menu Settings’, ‘edit_theme_options’, ‘test-theme-options’, ‘theme_option_page’ );
}
add_action( ‘admin_menu’, ‘add_test_theme_page’ );
function theme_option_page() {
echo ‘This is a test theme options page!’;
}