寄稿者がメディア(画像)をアップロードできるようにする
WordPress標準では、寄稿者のユーザーは記事を投稿することはできますが、「メディアを追加」などで画像をアップロードすることができません。
寄稿者でも画像をアップロードできるようにするには、下記のように設定します。
プラグインなしで設定する
プラグインなしで設定する場合は、functions.phpに下記のように記載します。
1 2 3 4 5 6 7 8 |
if ( current_user_can('contributor') && !current_user_can('upload_files') ){ add_action('admin_init', 'allow_contributor_uploads'); } function allow_contributor_uploads() { $contributor = get_role('contributor'); $contributor->add_cap('upload_files'); } |
結果
寄稿者でも投稿画面上に「メディアを追加」などのボタンが表示され、画像をアップロードすることができます。
補足
上記のコードの場合、必要なくなった時にコードを取り除いても元に戻りません。上記の方法だとデータベースに設定が保存されるため、コードを取り除くだけでは元に戻らないためです。(参考: WordPressで権限を付加する「add_cap」で思い通りにいかない場合のメモ | KuroBox)
上記のコードを使用後に元に戻すには、functions.phpに下記のように記載してください。
1 |
$wp_roles->remove_cap( 'contributor', 'upload_files' ); |
基本的には上記で問題ないと思いますが、コードを取り除けばすぐに元に戻るようにするには代わりに下記のコードを使うとよいかもしれません。(下記のコードはデータベースには保存されません)
1 2 3 4 5 6 7 8 9 10 |
/** * 寄稿者でも画像のアップロードができるようにします。 */ function contributor_has_upload_files( $allcaps ) { if ( isset( $allcaps['contributor'] ) ) { $allcaps['upload_files'] = true; } return $allcaps; } add_filter( 'user_has_cap', 'contributor_has_upload_files' ); |
プラグインを使用して設定する (User Role Editor)
プラグインの「User Role Editor」を使用すると、管理画面上で権限のON/OFFができます。
※あらかじめUser Role Editorをインストールし、有効化してください。日本語化の方法は「User Role Editorを日本語化する (4.19.2〜)」を参考にしてください。
- 管理画面の「ユーザー」 > 「User Role Editor」をクリックします。
- 権限を「投稿者 (contributor)」に変更します。
- 「upload_files」にチェックします。
- 「更新」をクリックします。
戻したい場合はチェックを外せば元に戻ります。