WordPress不考虑角色的Add_Options_Page()函数

时间:2014-05-14 作者:Shairyar Baig

我是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\'
    );
}
但如果我尝试以下操作,则会出现菜单(更改Administratormanage_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_pageROLE 那么为什么管理员这个角色不被接受呢?

2 个回复
最合适的回答,由SO网友:Otto 整理而成

你的理解是错误的。第三个参数add_options_page() 功能是能力,而不是角色。

这一点可以从函数的原型中清楚地看出:

function add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function = \'\' )

manage_options 是一种能力。Administrator 不是。

SO网友:Rarst

虽然WP通常接受能力检查中的角色(尤其是经常建议不要),但它区分大小写,应使用小写:

var_dump( current_user_can( \'administrator\' ) ); // bool(true)
var_dump( current_user_can( \'Administrator\' ) ); // bool(false)

结束

相关推荐