ワードプレスで発行した各ユーザーのアカウント権限以外でファンクションを実行する条件分岐方法について

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ワードプレスにはさまざまなユーザー(管理者〜購読者)が存在しています。すべての権限を持つ「管理者」から、一部権限を抑えた「編集者」など。また「投稿者」には投稿(記事)の公開権限がありますが、「寄稿者」には公開権限がなかったりと、さまざまな運用シチュエーションが考慮されたユーザーが準備されています。デフォルトで準備されているユーザーは下記の通りです。

権限名 権限(ロール)
管理者 administrator
編集者 editor
投稿者 author
寄稿者 contributor
購読者 subscriber

上記に限らず、独自の権限を持たせた「オリジナル」の権限を作ることも可能です。発行済みのユーザーが持つアカウント権限に対しての条件分岐なので主に管理画面内でのカスタマイズに使われます。

実際に「functions.php」でカスタムする場合は以下のような書き方で制御を行います。

if ( ! current_user_can( 'administrator' ) ) {
	//命令文
}

上記は「もし管理者じゃなかった場合は実行する」という条件分岐です。括弧内にある「administrator」の箇所を「editor」へ変更すれば『もし編集者じゃなかったら実行する』といった制御になります。ちなみに「!」を外せば「もし管理者なら実行する」という制御に変わります。

ワードプレスではfunctions.php内に色々なファンクションを書いてカスタマイズしていきます。ファンクションを実行するのが「add_action」や「add_filter」の「命令文」なので、命令文の実行をユーザー権限で条件分岐を行う流れです。購読者にのみ伝えたいメッセージなどアイデア次第では何でもできます。

たとえば、管理画面の文言を変更するカスタマイズ。以下の書き方であれば管理者がログインしても、編集者がログインしても文言が置きかわります。編集者にはわかりやすい文言だと更新しやすいかもしれませんが、管理者であればワードプレス本来の文言のままにしたいシチュエーションもあるでしょう。

//管理画面の文言を変更する
add_filter( 'gettext', 'custom_gettext_replacement_wording' );
function custom_gettext_replacement_wording( $translation ) {
	$translation = str_ireplace( 'Team Members', '従業員の管理', $translation );
	$translation = str_ireplace( 'Add New Team Member', '新たな従業員を追加', $translation );
	$translation = str_ireplace( 'Search 従業員の管理', '従業員を検索', $translation );
	return $translation;
}

そういった場合では以下のように記述すればOKです。

//管理画面の文言を変更する
function custom_gettext_replacement_wording( $translation ) {
	$translation = str_ireplace( 'Team Members', '従業員の管理', $translation );
	$translation = str_ireplace( 'Add New Team Member', '新たな従業員を追加', $translation );
	$translation = str_ireplace( 'Search 従業員の管理', '従業員を検索', $translation );
	return $translation;
}

//管理者以外のみ文言変更を実行する
if ( ! current_user_can( 'administrator' ) ) {
	add_filter( 'gettext', 'custom_gettext_replacement_wording' );
}

管理者以外の場合や管理者のみなど色々な指定が可能ですので、上手に組み合わせればクライアント側の細かな要望にも答えられます。細部の制御を行いたい場合はぜひご活用くださいませ。

最新式の無料プラグインを事前公開

WordPressは公式サイトに登録されているプラグインだけでは機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグイン無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
改良されたプラグインを確認する