WordPress开发函数 add_options_page()
WordPress开发函数 add_options_page(),添加子菜单页面到设置主菜单。
用法:
add_options_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()调用的简单包装器,它传递接收到的参数并指定' options-general '。php '作为$parent_slug参数。这意味着新的选项页面将作为一个子菜单添加到设置菜单。
- $capability参数用于根据当前用户的角色和功能确定该页面是否包含在菜单中。
- 处理options页面输出的函数还应该验证用户的能力。
- 如果在插入中有空格,那么在生成URL时这些空格将被删除。这将导致一条错误消息,告诉您没有足够的权限来查看页面。
来源:
文件: wp-admin/includes/plugin.php
function add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $position = null ) {
return add_submenu_page( 'options-general.php', $page_title, $menu_title, $capability, $menu_slug, $function, $position );
}
更新日志:
用户贡献的笔记
(由Codex - 5年前贡献)
面向对象的选项页面助手/视图
/**
* Class for registering a new settings page under Settings.
*/
class WPDocs_Options_Page {
/**
* Constructor.
*/
function __construct() {
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
}
/**
* Registers a new settings page under Settings.
*/
function admin_menu() {
add_options_page(
__( 'Page Title', 'textdomain' ),
__( 'Circle Tree Login', 'textdomain' ),
'manage_options',
'options_page_slug',
array(
$this,
'settings_page'
)
);
}
/**
* Settings page display callback.
*/
function settings_page() {
echo __( 'This is the page content', 'textdomain' );
}
}
new WPDocs_Options_Page;
(由Codex - 5年前贡献)
基本的例子
典型用法出现在注册了' admin_menu '钩子的函数中(参见添加管理菜单):
/**
* Registers a new options page under Settings.
*/
function wpdocs_my_plugin_menu() {
add_options_page(
__( 'My Options', 'textdomain' ),
__( 'My Plugin', 'textdomain' ),
'manage_options',
'my-plugin.php',
'my_plugin_page'
);
}