如何仅使用设置API为超级管理员用户显示某些设置

时间:2012-11-20 作者:jessica

我正在使用设置API开发一个带有选项页的插件。

我想为我的插件存储一个选项数组,但在设置页面上,我只希望管理员用户可以看到一些设置,但超级管理员可以使用完整的设置列表。

这可能吗?

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

使用测试当前用户的角色current_user_can( \'administrator\' ):

if ( current_user_can( \'administrator\' ) )
{
    add_settings_field( /* arguments */ );
    // or
    add_settings_section( /* arguments */ );
}
确保在保存选项时使用相同的检查。否则,常规用户可能会删除这些值。

SO网友:Chip Bennett

或者,您可以合并current_user_can() 进入add_settings_field() 每个仅管理员选项的回调:

function somesetting_add_settings_field( $option ) {
    // This is an admin-only option
    if ( current_user_can( \'administrator\' ) {
        // If current user is admin,
        // output the form field
    } else {
        // Otherwise, output a message,
        // or display a static value of the option,
        // etc.
    }
}
使用此方法,您根本不必弄乱实际的设置页面标记。

如果正确编写了清理回调,以便检查要设置的数据,以及array\\u merge()验证/清理的值与现有选项值,则不必担心删除或不正确地覆盖任何仅管理的设置。

结束

相关推荐

WP中是否有内置的脚本、类和/或函数供插件从wp_Options中导出/导入其保存的数据?

在WordPress中,是否有任何受支持的“脚本插件”、类和/或WordPress函数允许插件将其自身数据从数据库导出/导入到txt/json文件?一种帮助处理插件中备份功能数据的方法。最初的代码是我在本地主机上工作的,但不是在我上线时,因为各种原因。最初发布时,正如奥利在回答中指出的那样,“你不能上传AJAX文件。它们不受支持,但你可以伪造它。”How can I upload files asynchronously with jQuery?. 从那以后,又增加了一些答案。使用表单和ajax函数时,大