webコンテンツを徹底強化!WordPressサイト制作とプラグイン&テーマ情報・メンテ/エラー対応から、PHP/CSS/javascript、動画・音・イラスト等制作まで扱うコラム
マルチメディアコンテンツ制作読んどけ☆コラム

【WordPress】ユーザー権限を追加する方法(プラグイン無し・level_0購読者相当)

      2021/04/17

【WordPress】ユーザー権限を追加する方法(プラグイン無し・level_0購読者相当)

今回は、WordPressの会員サイトにあったらいい機能『独自のユーザー権限』について取り上げます。WPには基本のユーザー権限が搭載されていますが、名称が読み物サイト向きです。そこでサイトの状況に合わせて独自の権限を設定するというのが、今回の記事の趣旨です。さっそく確認してみましょう。

WordPressユーザー権限とは?追加する方法は?

WordPressはユーザー権限によって、操作できる内容が変わる

基本的に一人で運営してるときはあまり使いませんが、WordPressにはこのように5種のユーザー権限があります。『管理者・編集者・投稿者・寄稿者・購読者』というものです。名前的には読み物サイトの運営体制に合わせたネーミングと思います。

これは、データベース上ではoptionsテーブルに入っています。とはいえシリアライズされているので、人間が読むには不向き。これや、codexの記事を見るとわかりますが、それぞれの権限によって、できることが異なります。

optionsテーブル中身を整理してみました。権限『購読者』は、基本的には読むのがメインで、サイト運営についての動きはできません。一方、管理者権限では、このように『edit_themes(テーマ編集)・aioseo_manage_seo(all in one seo管理)など、ほぼすべての対応ができる』という点が異なります。他の権限(編集者など)についても、codexを読んでみてください。

WordPressユーザー権限は、プラグインなどでも追加・操作できる

WordPressユーザー権限は、一般的にはプラグインで追加・操作することが多いです。例えば、『ショッピングサイトや会員機能プラグインで、顧客・取引先権限が追加される』といったようにです。ショッピングカートなどのほか、単体でユーザー権限を専門に操作するものがあります。

それは『User Role Editorプラグイン』です。利用ユーザーも非常に多く、WPユーザー権限について検索すると高確率で出てくるので、エラーなども対応しやすいと思います。

プラグイン無しで権限追加するには?→add_roleにcapabilitiesのパラメータ指定してみる

プラグインも紹介しましたが、ちょっとしたユーザー権限を追加するだけなら、WPの組み込みファンクションが使えるようです。ここではプラグインを使わないで、ユーザー権限を追加してみます。

プログラム例

functions.phpに記載します。WordPressには組み込みファンクションでadd_roleというのがあり、これで権限を追加します。add_roleのパラメーターは、権限グループ名が『'download_user'』、表示名が『'ダウンロードユーザー'』。後ろのarray(配列)はcapabilitiesで、できる操作などを書いていきます。

capabilitiesの設定については、項目が多いので、『ユーザーの種類と権限について/codex』を読みながら進めると良いです。『read(読む)』『edit_posts(記事編集)』『upload_files(ファイルアップロード)』等のほか、テーマ編集・ユーザー編集など多岐にわたります。 ユーザーレベルについては一応書きましたが、これはWordPress Version 2.0 以前で使われていたシステムです。現在では『ユーザーレベル8、9、10は管理者』というような形になっています。

実施結果→SSFにダウンロードユーザー権限が追加

コードを実行した結果です。SSF著作権フリー曲サイトで実験したところ、このように『ダウンロードユーザー』という権限ができました。 なお、capabilitiesのパラメータで設定した内容は、基本的にデフォルトの購読者('read' => true,'level_0' => true,)と同じになります。サイトの雰囲気に合わせて名前を変えただけという状況。

一回やればデータベース(optionsテーブル)に設定が入り、あとはその設定を読む感じになります。

プラグイン無しで権限追加 参考リンク

ただし、作った権限はデータベースに残るので、使わなくなったらremove_roleで消す

一度作ったユーザー権限は、こんな形でデータベースに残ります。これはテーマなどを変えても残るため、『もし使わなくなった場合、使わなくなった権限が表示されてしまう』という点は困り所。

これをカットするためには、組み込みファンクションのremove_roleを使います。functions.phpの権限追加部分をカットした後、remove_roleを実行してやれば、作った権限が削除されることを確認しました。

あとがき・まとめ

  • WordPressはユーザー権限によって、操作できる内容が変わるし、プラグインなどで操作可能
  • プラグイン無しで権限追加するには、組み込みファンクションのadd_roleを使う
  • 追加した権限を削除するには、remove_roleで

まとめるとこんなところでしょうか。サイトの状況によっては、デフォルトで用意されている権限以外のものを使いたいことがあるかもしれません。プラグインで操作しても良いですし、ちょっとしたものならadd_roleで追加できるので、ぜひ使ってみてください。


【カテゴリ】 - WordPress管理画面カスタマイズ
【タグ】 - ,

  関連記事