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


22

友人のために新しいブログを設定しましたが、予防措置としてすぐに管理者アクセス権を与えない方が良いと考えました。

そのため、エディターとして新しいユーザーを作成しました。

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

エディターロールがTwenty Tenまたはその子のテーマ設定を編集できるようにする簡単な方法はありますか?基本的に、管理者が登録できるすべてのことを行えるはずです。テーマ、おそらくテーマを変更します。


2
思い出させてください…そのためのプラグインを作成しました:編集者向けのテーマオプション
-fuxia

回答:


21

functions.phpのロールオブジェクトと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'); 

機能リストとそれぞれの意味をご覧ください。


3
クール、それはうまくいきました!get_role('editor')->add_cap('edit_theme_options');
ショーツの場合

1
@hakre FYIこのような直接変数の割り当ては、a()->b()5より前のPHPバージョンでは機能しません。
hitautodestruct

通常、ロールはデータベースに格納されるため、ロールの更新はプラグインで、またアクティブ化/非アクティブ化フック内で行う必要があります。すべてのWordPressプロセスでこのコードを実行する必要はありません。
デビッド

6

これはこの質問に対するグーグルでの最初のヒットであるため、これは更新のための適切な場所だと思います:

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

tl; dr:

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

私のために働く(2014年)


グレート詰め込む男...
アッバス

WP> 4.0の場合、もう1行追加する必要がありました$role_object->add_cap('customize');
アレックス


1

もう1つの優れたプラグインは、ユーザーロールエディター(http://wordpress.org/extend/plugins/user-role-editor/)です。これはメンバーに似ていますが、より基本的で使いやすいです。さらに、開発者は常にフィードバックを聞き、必要に応じて支援を提供します。


0

これは古いですが、これを実現できる新しい方法があります。

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.