web-dev-qa-db-ja.com

サイドバーへの編集者アクセス権の付与

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

14
Howdy_McGee

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をタイプすることによってそれらにアクセスすることができるかもしれないメニューからそれらを削除するだけです。

22
Elliott

できるだけ簡単に設定したいだけなら、Membersプラグインを使ってください。追加する必要がある機能は 'edit_theme_options'です。これは単なるウィジェット領域以上のものを与えることになることに注意してください、これはエディタに全体の外観メニューへのアクセス権も与えます。 ここをクリック

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

プログラム的にこれを行いたい場合は、add_cap()を使用する必要があります。

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

あなたはそれ自身のプラグインにそのコードを投げることができます。または functions.php に入れてください。

2
eddiemoya