web-dev-qa-db-ja.com

どのように私は編集者ユーザロールへのアクセスを与えるためにプラグインを変えることができますか?

私の編集者に、自分のWebサイトにインストールしたプラグインの設定ページへのアクセスを許可したいです。現時点では、管理者にしか見えません。

私が使っているプラ​​グインはuTubeVideo Galleryです、そして管理者以外のユーザーにアクセスを許可するオプションはありません。

彼のadmin.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')); 
}

編集者にアクセスを許可するために自分のコードを微調整する方法はありますか?

2
turtledropbomb

両方の関数呼び出しで表示されるmanage_options引数は機能です。この特定の機能により、ページにアクセス可能になります 管理者のみ

これを機能させるには、それを エディター機能の1つ のように変更して、edit_others_postsのようにすることもできます 新しい機能を作成する を使用することもできます。

ただし、どちらかを行うと、プラグインがハッキングされ、次回プラグインが更新されたときに変更が上書きされるため、プラグインのハッキングは一般的に悪い考えです

私は...するだろう:

  1. 編集者がこのglobal設定ページにアクセスする必要がある理由を慎重に検討してください。 「編集者」は論理的には「コンテンツ」の役割であり、「グローバルサイト管理」の役割ではありません。
  2. エディターが必要とするのは、おそらくショートコードか、プラグイン機能への他の単純化されたアクセスかどうかを検討してください。
  3. #1も#2も適合しない場合は、プラグインの作成者に連絡し、アクセスが制限されている理由と、作成者がプラグインコードを変更する意思があるかどうかを調べます
5
s_ha_dum

で試してみる

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')); 
}
0
Laukik Patel