web-dev-qa-db-ja.com

既存のユーザーロールの全機能を取得する方法

既存のユーザーロール(例:作成者)の全機能をどのようにして取得できますか?既存のユーザーロールをすばやく複製してから新しいロールを作成し、新しいカスタムロールに機能を割り当てるか削除するために使用します。

3
Carl Alberto

デフォルトで既存のロールと機能を台無しにしないことをお勧めします。将来多くのカスタムロールと機能がある場合には、問題を解決するのに役立つかもしれません。

あなたの質問に答えるために、私は例があります:私はほとんど管理者を持っていますがそれをするためにプラグインとテーマを編集する能力を持っていない新しいロール/ユーザーグループが必要です:

1)Administratorの既存の機能をコピーしたいとしましょう。

 $admin_role_set = get_role( 'administrator' )->capabilities;

2)add_roleを使用して新しいユーザーロールを作成できます。詳細は Codex を参照してください。次に、#1から得た機能のリストを使用します。

 $role = 'content_admin';
 $display_name = 'Content Admin';
 add_role( $role, $display_name, $admin_role_set );

3)コーデックスのRoles and Capabilitiesリストをチェックすることによって: https://codex.wordpress.org/Roles_and_Capabilities / edit_pluginsedit_themesケーパビリティを削除する必要があります。それを実現するには、remove_cap()を使用します。

 remove_cap( 'editor', 'edit_plugins' );
 remove_cap( 'editor', 'edit_themes' );

お役に立てれば!

5
Mac organo