web-dev-qa-db-ja.com

編集者ロールにテーマ設定の変更を許可するにはどうすればよいですか?

私はちょうど友人のために新しいブログを立ち上げました、そして予防措置としてすぐに彼にAdministrator Accessを与えないほうが良いと思いました。

そのため、私は編集者として新しいユーザーを作成しました。

しかし、その後、私はこのユーザーが背景やヘッダなどのテーマ設定を変更することはできないことを見ました。

編集者ロールがTwenty Tenまたはその子のテーマ設定を編集できるようにする簡単な方法はありますか?彼は基本的に管理者ができることなら何でもできるはずです。テーマ、おそらくテーマを変えることさえ。

22
hakre

あなたはroleオブジェクトとあなたからのadd_capを使って編集者ロールに機能を追加することができます。

<?php
   // get the the role object
   $editor = get_role('editor');
   // add $cap capability to this role object
   $editor->add_cap('edit_theme_options');
?>

機能を削除することもできます。

$editor->remove_cap('delete_posts'); 

ケーパビリティのリスト とそれぞれの意味を見てください。

21
Bainternet

これはこの質問に対するグーグルの最初のヒットであるので、私はこれがアップデートのための正しい場所であると感じます:

私にとっては、私はそれをedit_theme_options経由で動作させることができませんでした。それから私はプラグインのソースを読み、それが実際にはmanage_optionsであることを知りました。そしてそれはうまくいった。

tl; dr:

$role_object = get_role( 'editor' );
$role_object->add_cap( 'manage_options' );

私のために働く(2014年)

6

彼らは "edit_themes"機能を必要としませんか? Justin Tadlocks plugin http://wordpress.org/extend/plugins/members/ を使用して、各役割に関連する機能を編集できます。

5
Chris

もう1つの優れたプラグインはUser Role Editor(http://wordpress.org/extend/plugins/user-role-editor/)です。これはMembersと似ていますが、はるかに基本的で使いやすいです。加えて、開発者は常にフィードバックに耳を傾け、必要に応じて支援を提供します。

1
Travis Pflanz

これは古いですが、これを達成するための新しい方法は次のとおりです。

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
0
Bryan Willis