Wordpress add_options_page()函数不考虑角色

时间:2014-05-14 12:11:34

标签: php wordpress

我是WordPress插件开发的新手,我坚持为什么wordpress函数add_options_page()不接受角色。

这是我的代码无效

add_action('admin_menu', 'ct_admin_settings_page');
function ct_admin_settings_page()
{
    add_options_page(
        'CT Settings',
        'CT Settings',
        'Administrator',
        'ct_admin_settings',
        'ct_admin_settings_page'
    );
}

但如果我尝试以下操作,则会出现菜单(将管理员更改为 manage_options ),

add_action('admin_menu', 'ct_admin_settings_page');
function ct_admin_settings_page()
{
    add_options_page(
        'CT Settings',
        'CT Settings',
        'manage_options',
        'ct_admin_settings',
        'ct_admin_settings_page'
    );
}

据我了解,函数add_options_page中的第三个参数是ROLE,那么为什么不接受ROLE的管理员?

1 个答案:

答案 0 :(得分:2)

实际上add_options_page()函数的第三个参数是capability,它与role不同。

另一种思考方式是," 角色可以 一些功能是可行的'通过几个角色。"

从文档中查看功能签名,我们可以看到他们已将参数名称定义为capability

<?php
add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function);
?>

我会看一下this chart of Roles & Capabilities,然后选择一个只有管理员才能拥有的功能(最好是一个密切相关的到你的功能

例如,我可以选择manage_options(就像您已经完成的那样),因为它会非常仔细地反映您尝试构建ct_admin_settings_page的内容。