WordPress:ユーザー権限や情報によって条件分岐を行う方法

  • Posted on
  • Category : WordPress
WordPress:ユーザー権限や情報によって条件分岐を行う方法

備忘録。このブログでもいろいろと紹介しているWordPressの管理画面カスタマイズですが、そのまま使用すると全てのユーザーに対して適用されます。それを条件分岐を使用して特定のユーザーのみに適用させたりする方法です。

例えば「WordPressの管理画面をカスタマイズする時に使えるハック Part 2」で紹介している不要な投稿画面内のボックスやサイドメニューを非表示にするカスタマイズを行う場合、そのままここで紹介しているコードを使用すると全てのユーザーに対して適用されますが、これを特定のユーザーには適用させたくない形で実装したい時などに使える方法です。

「特定の権限以外のユーザー」 に適用する

特定の権限以外のユーザーに適用させたいという場合はcurrent_user_canを使って実装ができます。
例えば「管理者」以外の権限に対して何か行いたいという場合はfunctions.phpへ以下のように記述します。

functions.php

if (!current_user_can('administrator')) {
	// ここに処理
}

上記は権限が「管理者」の場合ですが、その他の権限にしたい場合は上記ソースのadministratorの部分を任意のものに変更することで実装できます。

「特定のID以外のユーザー」 に適用する

開発者以外には見せたくない・触ってほしくない部分がある場合、単純に他のユーザーには「管理者」以外の権限を与えて先ほどのcurrent_user_canを使用すればいいのですが、何らかの理由でどうしても他のユーザーも「管理者」として登録する必要が出てきた場合は、current_user_canを使用して権限に条件分岐を行うことはできなくなります。
このような場合は、get_currentuserinfoを使用して、特定のID以外のユーザー以外に対して適用するという形で記述すれば実装することができます。

functions.php

global $current_user;
get_currentuserinfo();
if ($current_user->ID != "1" ) {
	// ここに処理
}

上記はユーザーIDが「1」以外のユーザーに対して何かを行うという記述になり、例えば開発者が「1」のユーザーIDを持っている場合、上記のように書くことでたとえ他のユーザーが「管理者」の権限を持っていても、開発者とそうでない者とで違う処理を実装することができます。
指定するユーザーIDの変更は、上記ソースで赤字表示している「1」の部分を任意のものに変更します。

上記で使用したcurrent_user_canget_currentuserinfo、ユーザー権限などについての詳細は以下で確認できます。

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のアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。