編集者にサイドバーへのアクセスを許可する


15

編集者ロールに、サイドバーとそのコンテンツの編集へのアクセス権を付与したいと思います。私はそこにテキストウィジェットを持っています。このテキストウィジェットを編集するには、ユーザーは管理者である必要があります-これは最悪です。サイドバーを編集するためのアクセスを許可する編集者ロールに許可を付与するにはどうすればよいですか?


これは関連する可能性があります:wordpress.stackexchange.com/questions/13413/…–
エリオット

私が探しているもののようですが、コードを理解していません。既存のユーザーを編集する代わりに、新しいユーザーを作成し、ロールを割り当てるように見えます
Howdy_McGee

回答:


21

このedit_theme_options機能は、ユーザーがこのページで説明されているようにサイドバーを編集できるようにする必要があります:http : //codex.wordpress.org/Appearance_Widgets_SubPanel

追加するコード functions.php

   $role = get_role('editor'); 
   $role->add_cap('edit_theme_options');

編集:

これは、エディターがテーマまたはメニューにアクセスするのを防ぐために機能するはずです

function custom_admin_menu() {

    $user = new WP_User(get_current_user_id());     
    if (!empty( $user->roles) && is_array($user->roles)) {
        foreach ($user->roles as $role)
            $role = $role;
    }

    if($role == "editor") { 
       remove_submenu_page( 'themes.php', 'themes.php' );
       remove_submenu_page( 'themes.php', 'nav-menus.php' ); 
    }       
}

add_action('admin_menu', 'custom_admin_menu');

これをテストする機会はありませんでしたが、URLを直接入力してアクセスできるメニューからそれらを削除するだけです。


それは魅力のように機能しますが、メニューやテーマにアクセスしないようにするにはどうすればよいですか?
Howdy_McGee

編集した回答をご覧ください。
エリオット

致命的なエラー:未定義の関数remove_menu_page()の呼び出し-また、URLで入力することを心配していません。そして、あなたの投稿に十分な+1ができません!ありがとう!
Howdy_McGee

間違ったコードを追加して申し訳ありませんがremove_submenu_page、それでも致命的なエラーは発生しないはずです。回答を編集してテストしましたが、すべてうまくいきましたか?
エリオット

1
それが、3.1.0からしかサポートされていなかった理由です。アップグレード以来、バグはありませんでした...セキュリティを保つために、常に最新バージョンにアップグレードすることをお勧めします。
エリオット

1

これをできるだけ簡単に構成する場合は、Membersプラグインを使用します。追加する必要がある機能は「edit_theme_options」です。これにより、ウィジェット領域だけでなく、エディターが[外観]メニュー全体にアクセスできるようになることに注意してください。こちらをご覧ください

http://wordpress.org/extend/plugins/members/

プログラムでこれを行うには、add_cap()を使用する必要があります。

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

そのコードを独自のプラグインに投げれば、完了です。または、functions.phpに入れます


また、かなり人気のあるユーザーロールエディターを使用しているユーザーがいる場合は、[テーマオプションの編集] / [edit_theme_options]を選択することもできます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.