除管理员外,设置字段()不适用于其他角色

时间:2018-02-22 作者:Himani

在我的自定义插件中,我希望其他用户角色也可以保存插件设置。我使用settings\\u fields(\'custom\\u options\')函数保存设置。

当我以编辑或任何其他角色登录时,单击按钮,我会被重定向到while屏幕页面,并显示一条消息“抱歉”,不允许您管理这些选项。

拜托,谁能帮我一下吗?

提前感谢!

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

要更改保存设置所需的功能,可以使用option_page_capability_{$option_page} 过滤器,其中{$option_page} 值是否传递给settings_field() 在设置页面上。

因此,如果您的设置页面上有以下内容:

<?php settings_fields( \'wpse_294802_options\' ); ?>
您可以更改所需的功能以使用option_page_capability_wpse_294802_options 过滤器:

function wpse_294802_option_page_capability() {
    return \'edit_pages\';
}
add_filter( \'option_page_capability_wpse_294802_options\', \'wpse_294802_option_page_capability\' );
现在edit_pages 功能可以保存您的设置。只需确保在添加设置页面时设置了匹配功能,否则用户将能够保存设置页面,但不能查看它。

PS:submit_button() 在这里并不是真的相关,它只是一个输出<input> 具有适当类和文本的元素。它在确定如何或是否保存设置方面不起作用。重要的是settings_fields().

结束

相关推荐