カスタム機能をユーザーに割り当てる方法はありますか。ユーザーロールについては話していません。
私は私が私のすべての作家に "作者"のユーザーロールを割り当てたマルチ作家のブログを運営しています。しかし、私はUSER-IDから(ロールではなく)機能を削除するプラグインまたはfunction.phpスニペットが必要です
ロール(管理者/作成者など)に機能を割り当てたり取り消したりしたくない私はそのユーザーIDを使用して特定のユーザーに機能を割り当てたり取り消したりしたいです。
私は50人の作家を想定したブログを持っています、作者は投稿、コメント、編集、更新、Eメールの送信、共有などをする機能を持っていますが、ユーザーがこの機能の1つを誤用したら.
しかし、ロールを使用することにした場合、以下のようなさまざまな機能を持つ非常に多くのユーザーロールを作成する必要があります。
ユーザーから機能を取り消す方法はありますか?(USER-ROLEではなく)
最後に、 WP_user
クラスを使用してそれを実行する方法を考え出しました。
特定のユーザーに対して機能を追加/削除するためのスニペット -
//to remove capability from user
$user = new WP_User( $user_id );
$user->remove_cap( 'can_email');
//to add capability to user
$user = new WP_User( $user_id );
$user->add_cap( 'can_email');
wp_user
クラスの capabilities.php には、ユーザーに機能を割り当てたり、ユーザーから機能を取り消したりするための特別な機能があります。
必要なのが既存のロールに機能を割り当てること、または(既にカスタムロールを作成済み)場合は、$ wp_rolesというグローバル変数があります。
//suppose you have a custom role called 'architect' and you want to add a capability called `can access architect zone`
global $wp_roles;
$wp_roles->add_cap( 'architect', 'can_access_architect_zone' );
//add to default roles
$wp_roles->add_cap( 'administrator', 'monitor_architect' );
必要な機能を持つ新しい役割を作成してから、それにユーザーを割り当てることができます。
あなたは add_role() を使って必要な能力を渡すことができます。