別のユーザーグループが編集した投稿ページや固定ページを編集できないようにする

ユーザーA、ユーザーB、ユーザーC...のように複数のユーザーグループがあり、ユーザーAは作成者が「ユーザーA」となっている固定ページや投稿ページのみを編集できるようにするための記述です。 ユーザーAは管理画面の一覧ページでユーザーAが作成したページしか表示されなくなります。 もし、ユーザーAが作成した記事が一つも無い場合は、他のユーザーが作成したページ一覧が表示されますが、選択ができない状態になります。
ユーザーに権限を与えるにはadd_cap関数、権限を削除するにはremove_cap関数を使用しますが、これはデータベーステーブルのwp_optionsのフィールドwp_user_rolesへ保存されます。

編集者(editor)が他のユーザーが作成した固定ページや投稿ページを編集不可に

functions.phpに下記を記述します。
実行後に管理画面の一覧から他のユーザーが作成したページが非表示となります。

functions.php
function my_change_editor_caps(){
	$role = get_role( 'editor' );
	$role->remove_cap( 'edit_others_pages' ); //固定ページ
	$role->remove_cap( 'edit_others_posts' ); //投稿ページ
}
add_action( 'admin_init', 'my_change_editor_caps' );
一度実行した後は関数を削除しても有効です。

再度権限を与える場合

remove_capの部分をadd_capにして再度、権限を与えまます。

functions.phpをアップロードすると、再び他のユーザーが作成したページが表示されるようになります。

functions.php
function my_change_editor_caps(){
	$role = get_role( 'editor' );
	$role->add_cap( 'edit_others_pages' ); //固定ページ
	$role->add_cap( 'edit_others_posts' ); //投稿ページ
}
add_action( 'admin_init', 'my_change_editor_caps' );

こういったユーザー権限の変更は時に必要な場面が出てくるとは思いますが、やりすぎると権限の範囲が曖昧になってきますのである程度計画的に、そして慎重に行うことをおすすめします。

ネットショップ向けWooCommerce対応WordPressテーマ「Japacart(ジャパカート)」

本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。

ネットショップ向けWooCommerce対応WordPressテーマ「Japacart(ジャパカート)」
Copyright © WPスイッチ All Rights Reserved.