注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

寄稿者権限でもメディアをアップロードをする方法(WordPress)

やりたいこと

WordPressで権限管理をする場合、WordPress自体を変更されないように、寄稿者権限にすることがあるかと思います。ただこの場合だと、記事の作成はできます(ただし公開はできない)が、記事内で使う画像をアップロードが権限上できません。そのため、今回は、寄稿者権限でもメディアをアップロードする方法をまとめておこうと思います。

WordPressの権限

権限とは

WordPressでは、複数人でサイトを運営する際に、権限を分けることができます。プラグインの設定やサイトのデザインを変更できないようにする、画像のアップロードをさせない、公開設定はさせないなど、適切な権限設定が行なえます。
権限グループには、管理者、編集者、投稿者、寄稿者、購読者の5つの権限設定ができます。全て操作ができる権限が管理者になっており、できることが1番少ない権限が購読者になっています。

・管理者:全機能にアクセスできる権限
・編集者:記事管理に関することは全てできる権限(外観、プラグイン、設定などはできません。)
・投稿者:自身のアカウントの投稿のみ管理できる権限(固定ページの作成はできません。)
・寄稿者:自身のアカウントの公開ができず、記事の作成のみできる権限(メディアのアップロードができません)
・購読者:自身のプロフィールのみ編集できる権限(記事に関する機能は使えません。)

上記のように権限が分けられています。

ライターに権限をつける場合はどれにすべきか

では、記事の作成をライターにお願いしたい場合、どの権限をつけるべきでしょうか。個人的には、寄稿者権限にすることをオススメします。ケースバイケースだと思いますが、

・ライターに記事の公開権限を付けたくない場合

は、寄稿者権限にしましょう。寄稿者権限にすることで、問題が1つ発生します。寄稿者権限だと、メディアをアップロードすることができません。これは寄稿者で運用するには、非常に不便なため、寄稿者権限でもメディアをアップロードできるようにしたいと思います。

メディアをアップロードする方法

WordPress内のfunctions.phpを修正します。functions.phpはテーマ配下にありますので、例えば、/wp-content/themes/(使っているテーマ)/functions.php あたりにあると思います。

  • 修正方法
// 寄稿者でも画像アップロードできるように修正
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');
}

上記のプログラムを追加で挿入することで、寄稿者でも画像アップロードできるように修正することができます。

いかがでしたでしょうか。プログラムの修正は必要ですが、上記のようにすることで寄稿者でも画像をアップロードできるようになりました。ぜひお試しください。