按角色/权能访问选项页面

时间:2014-06-24 作者:user54667

所以我一直在谷歌上搜索,试图找出一个简单明了的解决方案。我试过几种方法,但都不管用。我刚进入WordPress,我必须编辑一些权限。我想让编辑级别访问一个特定的插件。我已经确定这是一段返回错误或正确语句的代码(您是管理员吗?)。

编辑器应有足够的权限在该插件的“设置”选项卡中工作。这是一段代码。我不是要直截了当的答案,我只是需要一些建议。

if (is_admin() ){
add_action(\'admin_menu\', \'rooster_admin_menu\');
add_action(\'plugins_loaded\', \'rst_add_registration\');
add_action(\'plugins_loaded\', \'rst_cancel_registration\');
add_action(\'plugins_loaded\', \'rst_delete_event\');
function rooster_admin_menu(){
    add_options_page(\'Rooster\', \'Rooster\', \'administrator\', \'rooster\', \'rooster_html_page\');
}

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

您应该可以通过option_page_capability_{$option_page} 钩状:

function wpse151616_grant_access_to_options_page_for editors() {
    return \'edit_posts\';
}
add_filter( \'option_page_capability_rooster\', 
            \'wpse151616_grant_access_to_options_page_for editors\' );
有关可能的返回值,请参阅Roles and Capabilities. 可变部分-{$option_page} - 钩子名称的$menu_slug - 您的add_options_page() 呼叫

SO网友:user54667

我做了一些研究,找到了解决这个问题的另一种方法。我使用函数为编辑器分配了权限:)

  if ( is_admin() )  
{  
    add_action( \'admin_menu\', \'add_plugin_for_editors\' );  
}  

function add_plugin_for_editors()   
{  
    if (!current_user_can( \'manage_options\' ))  
    {  
        add_menu_page(\'Rooster\', \'Rooster\', \'editor\', \'rooster\', \'rooster_html_page\');  
    }  
}  

结束

相关推荐

更新复杂`wp_options`对象中的特定键值

这应该很容易,但我找不到任何人的参考点!我有一个选择wp_options 表,需要通过update_option(). 我只是找不到正确的语法来执行类似以下更新密钥的操作object_key 在选项中my_plugin_settings 在我的wp_options 表格: update_option(\'my_plugin_settings[object_key]\',\'new value\'); 如何正确完成?