web-dev-qa-db-ja.com

ユーザーロールではなくユーザーに機能を割り当てる方法

カスタム機能をユーザーに割り当てる方法はありますか。ユーザーロールについては話していません。

私は私が私のすべての作家に "作者"のユーザーロールを割り当てたマルチ作家のブログを運営しています。しかし、私はUSER-IDから(ロールではなく)機能を削除するプラグインまたはfunction.phpスニペットが必要です

注意 -

ロール(管理者/作成者など)に機能を割り当てたり取り消したりしたくない私はそのユーザーIDを使用して特定のユーザーに機能を割り当てたり取り消したりしたいです。

アップデート - 2012年8月1日

私は50人の作家を想定したブログを持っています、作者は投稿、コメント、編集、更新、Eメールの送信、共有などをする機能を持っていますが、ユーザーがこの機能の1つを誤用したら.

しかし、ロールを使用することにした場合、以下のようなさまざまな機能を持つ非常に多くのユーザーロールを作成する必要があります。

  • 送れない
  • 送信できません&コメント
  • 送信、コメント、投稿などはできません。

ユーザーから機能を取り消す方法はありますか?(USER-ROLEではなく)

1
amit

最後に、 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 には、ユーザーに機能を割り当てたり、ユーザーから機能を取り消したりするための特別な機能があります。

1
amit

必要なのが既存のロールに機能を割り当てること、または(既にカスタムロールを作成済み)場合は、$ 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' );
0
Dipesh KC

必要な機能を持つ新しい役割を作成してから、それにユーザーを割り当てることができます。

あなたは add_role() を使って必要な能力を渡すことができます。

0
pcarvalho