当前浏览:首页 / WordPress函数 / add_options_page()

add_options_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', int $position = null )

将子菜单页添加到设置主菜单

addmore...

menu_page 菜单页more...


描述

这个函数接受一个能力(capability),它将被用来确定一个页面是否包括在菜单中。

用于处理页面输出的函数必须检查用户是否具有所需的能力。


参数

$page_title

(string)(必填) 选中菜单时要在页面标题标签中显示的文本。

$menu_title

(string)(必填) 要用于菜单的文本。

$capability

(string)(必填) 向用户显示此菜单所需的能力。

$menu_slug

(string)(必填) 用于引用此菜单的slug名称(对于此菜单应是唯一的)。

$callback

(callable)(可选) 要调用以输出此页面内容的函数。

默认值: ''

$position

(int)(可选) 此项应出现在菜单顺序中的位置。

默认值: null


返回

(string|false) 返回结果页面的hook_suffix,如果用户不具备所需的能力则返回false。


更多信息

  • 此函数是调用add_submenu_page()的简单包装器,传递接收到的参数并指定“options-general.php”作为$parent_slug参数。这意味着新选项页面将作为“设置”菜单的子菜单添加。
  • $capability参数用于根据当前用户的角色和能力,确定该页面是否包含在菜单中。
  • 处理选项页面输出的函数还应验证用户的能力。
  • 如果slug中有空格,则在生成URL时将去掉这些空格。这将导致一条错误消息,告诉您没有足够的权限查看页面。


源码

查看源码 官方文档


更新日志

版本描述
5.3.0添加了$position参数。
1.5.0开始引入

用户贡献的笔记

  • 贡献者:Codex

    面向对象选项页辅助程序/视图

    /**
     * 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

    基本示例

    典型用法出现在使用“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'
    	);
    }
    
  • 贡献者:Dave

    请将此挂接到admin_menu(而不是网页上其他文章中的admin_init)。

    根据包装add_submenu_page()的文档:

    如果您运行时在wp_die()屏幕上显示消息:您没有足够的权限访问此页面。则说明您过早的挂钩了,您应该使用的挂钩是admin_menu