投稿日:

WordPress で任意の権限(capability)から該当する全てのユーザーを取得する


WordPress で任意の権限を持つ全てのユーザーを取得したいという要件があって、以下のコードを書きました。

WordPress では、$user->cap_key に指定される名前の usermeta に、権限と権限グループの名前がシリアライズされた状態で保存されているので、これを WP_User_Query を使って meta_query で検索しています。検索する値は、指定の $capability と、その $capability を有する権限グループ(Role)になります。11行目から18行目は、その権限グループの名前を収集しています。

$user_cap_key を準備する辺りがイケテナイのですが、他に良い方法が他にありましたら、教えていただけたら嬉しいです。

追記

一つだけ余談ですが、capabilities.php の中に以下のコードが散在しています。

これはかなりイケてないと思うので、オブジェクトにするのであれば、WP_Roles::getInstance() とか、シングルトンのファクトリメソッドを準備して欲しいですね。切なる要望です。 (#^.^#)

コメントを残す