編集者権限のユーザーにウィジェットの操作を可能にしたい!
WordPressを使って、複数ユーザーでサイト管理している時に、困ってしまうのがユーザー権限で操作できる機能が中途半端という問題。
その中でも特に不便なのが、編集者権限が「外観」(テーマ)を操作できないということ。
編集者にはページ以外に、cssファイルやテンプレートファイル、メニュー、ウィジェットを操作して欲しい場面が多いですが、通常の権限のままでは、一切操作することができません。
だからといって管理者権限も渡したくないということは結構あると思います。
この問題、実はめちゃくちゃ簡単に解決することが出来ます。
よくわからないプラグインを使うよりも安心なので、この方法をおすすめします。
functions.phpに下記のコードを追記する
function add_theme_caps(){ $role = get_role( 'editor' ); $role->add_cap( 'edit_theme_options' ); } add_action( 'admin_init', 'add_theme_caps' );
get_roleでは対象ユーザを指定しています。editorは編集者のことです。
add_capは、追加する機能を指定しています。edit_theme_optionsはテーマ(外観)を編集する機能のことです。
上記をfunctions.phpに追記すると、編集者権限のユーザがログインした時、メニュー内に「外観」が表示されるようになります。
外観にはメニュー、ウィジェットがありますので、ここから操作することが可能になります。
ユーザ権限と機能について、詳しくはWordPressの公式サイト「ユーザーの種類と権限」より確認してください。
まとめ
今回は、functions.phpに追記する方法で解決しました。
注意してほしいのは、functions.php、管理画面内から編集すると、記述ミスがあった場合、管理画面にさえアクセスできない状態になる恐れがあります。
functions.phpの更新に関しては、サーバーにFTP接続したうえで対応を行い、エラーが出た時には、すみやかに元の状態に戻せるようにしておきましょう。
FTP接続ができない状態でエラー(主に画面が真っ白になる)を出してしまうと、管理画面にはアクセスできないため、問題を解決することに時間が掛かってしまう可能性があります。
テンプレートファイルやcssファイルであれば、直接編集しても大きな問題になる可能性は低いですが、functions.phpに関しては、シャレにならない状況に陥る可能性があることを覚えておきましょう。