それで、これが可能であるかどうか私にはわかりませんが、カスタムCapabilitiesを追加することは可能ですか?
それで、私はWordpressと結びつくグループメッセージアプリケーションを書きました。私は特定のメンバー(私が今質問したオプションを介して設定される)だけがそのようなメッセージを送信できるようにしたいです。 "group_message"などの機能を追加し、それを特定のユーザーに追加します(送信アクセス権を持つ編集者や管理者に限定されないため)。
私は知っています:
wp_current_user()->add_cap()
しかし、私がする必要があるのはそれだけです:wp_current_user() - > add_cap( 'group_message')?
のカスタムロールケーパビリティ (説明とコード)の簡単な例を示しました。ただし、あなたの場合は、ロールではなく特定のユーザーに機能を追加します。
次のコードが、やりたいことの出発点になることがあります。
// The IDs of the `privileged users`
$users = array( ... );
// Required arguments for the user query
$args = array(
'include' => $users,
'fields' => 'all_with_meta',
);
// Add the capability to privileged users
foreach ( get_users( $args ) as $user )
$user->add_cap( 'group_message' );
// Check for the capability
if ( current_user_can( 'group_message') ) {
// group message stuff
}
// Remove the capability
foreach ( get_users( 'fields' => 'all_with_meta' ) as $user )
$user->remove_cap( 'group_message' );
今必要なことは、ユーザーIDを取得/提供することです。たとえば、プラグインメニューページにすべてのユーザーを一覧表示し(ある場合)、次にグループメッセージングを実行したいユーザーを選択し、最後にそれらのユーザーに機能を追加することができます。