我想让我的编辑访问我在他们的网站上安装的插件的设置页面。到目前为止,它只对管理员可见。
我使用的插件是uTubeVideo Gallery,除了管理员之外,没有其他选项可以让用户访问。
在他的管理中。php我找到了这些行,我知道这些行创建了设置页面:
public function addMenus()
{
add_menu_page(\'uTubeVideo\', \'uTubeVideo\', \'manage_options\', \'utubevideo_settings\', array($this, \'option_panel\'), plugins_url(\'utubevideo-gallery/i/utubevideo_icon_16x16.png\'));
add_submenu_page(\'utubevideo_settings\', \'uTubeVideo Galleries\', __(\'Galleries\', \'utvg\'), \'manage_options\', \'utubevideo_settings_galleries\', array($this, \'gallery_panel\'));
}
我有没有办法修改他的代码,这样我就可以访问编辑器了?
最合适的回答,由SO网友:s_ha_dum 整理而成
这个manage_options
您在两个函数调用中看到的参数都是一个功能。这种特殊的功能使页面可以访问only to administrators.
要使其工作,您可以将其更改为one of the editor capabilities 喜欢edit_others_posts
你也可以create a new capability 然后使用它。
然而,这样做都意味着对插件进行黑客攻击,下次更新插件时,您的更改将被覆盖,这就是为什么黑客攻击插件通常是个坏主意
我会:
仔细想想为什么编辑需要访问此全局设置页面。“编辑器”在逻辑上是一个“内容”角色,而不是一个“全局站点管理”角色,这似乎是您将其部分转换为的角色考虑一下编辑器需要的可能是一个短代码还是对插件功能的其他简化访问如果#1和#2都不合适,请联系插件作者,了解访问受限的原因,以及作者是否愿意更改插件代码
SO网友:Laukik Patel
Try with
public function addMenus()
{
add_menu_page(\'uTubeVideo\', \'uTubeVideo\', \'delete_posts\', \'utubevideo_settings\', array($this, \'option_panel\'), plugins_url(\'utubevideo-gallery/i/utubevideo_icon_16x16.png\'));
add_submenu_page(\'utubevideo_settings\', \'uTubeVideo Galleries\', __(\'Galleries\', \'utvg\'), \'delete_posts\', \'utubevideo_settings_galleries\', array($this, \'gallery_panel\'));
}