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 );

}

更新日志:
WordPress开发函数 add_options_page() (https://www.wpzt.net/) WordPress开发教程 第1张
用户贡献的笔记

(由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'

);

}