WordPress:ユーザー権限毎の機能を任意でカスタマイズする方法

  • Posted on
  • Category : WordPress
WordPress:ユーザー権限毎の機能を任意でカスタマイズする方法

結果的に使わなくなったのでちゃんと試したわけではないんですが、今後使う機会ありそうなので備忘録です。WordPressにはユーザー権限というものがあり、それによって利用できる機能が制限されたりするのですが、その制限されている機能を開放したり、逆に開放されている機能を制限するというように、ユーザー権限毎の機能を任意で変更する方法です。この手のことをやる場合はプラグインを使用する方法を目にすることが多く、実際にその方が楽にできるんですが、ほんの少し変更したいぐらいならわざわざプラグイン使わないでもできないか調べたらCodexで見かけたので試してみました。

機能を追加する

今回は例として、デフォルトではファイルアップロードに関して権限を与えられていない「寄稿者(Contributor)」でもメディアの追加をできるようにしてみます。
実装にはfunctions.phpへ以下のように記述します。

functions.php

function add_theme_caps(){
	$role = get_role( 'contributor' );
	$role->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );

まずget_role()で権限を指定し、今回は「寄稿者」に対してなのでcontributorを記述します。
ちなみに、それぞれ権限の指定方法は以下のように記述します。

  • 管理者 : administrator
  • 編集  : editor
  • 投稿者 : author
  • 寄稿者 : contributor
  • 購読者 : subscriber

次にadd_cap()にどの機能を開放するかを記述します。
今回は「ファイルアップロード」の機能を使えるようにしたいのでupload_filesを記述します。
それぞれの機能をどのように記述すればいいのかは後述するCodexで確認できます。

functions.php 記述前と記述後

これだけではわからないとは思いますが、上の画像はそれぞれ権限が「寄稿者」時の管理画面をキャプチャしたものです。
先ほどのソースを記述後に管理画面を確認すると、画像右側のように「寄稿者」の権限でもサイドメニューにメディアが追加され、投稿画面上にもボタンが追加されてファイルアップロードができるようになります。

権限周りの詳細を知りたい場合や各機能の記述方法などは以下より確認できます。

また、この方法はCodexを参考にしたもので、詳細に関しては以下より確認できます。

機能を無効にする

こちらは逆にデフォルトでは使用できる機能を無効にさせたい時に使える方法になります。
また、先ほどは機能を追加しましたが、それをやはり無効にしたい(元に戻したい)という時もこちらを記述することで無効にできます。
普段このようなカスタマイズをする場合は単純にその記述を消せば無効になるということが多いですが、これに関してはfunctions.phpから記述を消すだけでは無効にならずに追加されたままの状態になってしまうので、一度追加してしまったものは以下を記述して無効にする必要があります。

今回は例として、先ほど「寄稿者」の権限で使用できるようにしたファイルアップロード機能を無効にしてみます。
実装にはfunctions.phpへ以下のように記述します。

functions.php

function remove_theme_caps(){
	$role = get_role( 'contributor' );
	$role->remove_cap( 'upload_files' );
}
add_action( 'admin_init', 'remove_theme_caps' );

ソースを見ての通り追加時の記述とほぼ同じ感じで、まずget_role()で権限を指定し、あとはremove_cap()に無効にしたい機能を記述することで、指定した権限の指定した機能を無効化することができます。

この方法はCodexを参考にしたもので、詳細に関しては以下より確認できます。

プラグインを使用する…

プラグインを使わない方法を書いといてアレですが、冒頭にも書いたように権限毎の機能を任意で変更したい場合は、以下のようなプラグインを使うことで簡単に設定することができます。
いずれも今回紹介したような各権限の機能を有効化・無効化指定できたり、他にも特定の権限で投稿画面などのウィジェットの表示・非表示等も設定できるものもあるので、functions.phpをあまり触りたくない人や手っ取り早くやりたいという人、あとは全ての権限に関してかなり細かくカスタマイズしたい場合などはやはりプラグインが便利だと思います。

プラグインはほとんど英字表記ではありますが、基本的にはチェックボックスで選択していくだけで変更できるような感じなので特に悩むことなく設定できると思いますし、英語が苦手な人の場合でも検索してみるとプラグインの使用方法を説明している国内エントリーなども結構あるようなので、それらを参考にして容易にカスタマイズできると思います。

Back to Top

WordPress:ユーザー権限毎の機能を任意でカスタマイズする方法

WordPress:ユーザー権限毎の機能を任意でカスタマイズする方法

/ WordPress

Tagged with:

NxWorld

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser.NxWorldではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。