\WP_User
オブジェクトをダンプすると、2つのプロパティがあることに気付きました。これらのプロパティは、特定のユーザーの機能に直接関連しています。
$user_object->caps
$user_object->allcaps
$user_object->caps
の配列値が$user_object->allcaps
の配列値より少ないことにすぐ気付きました。おそらくここでの命名規則です。
私は現在$user_object->caps
の下の1つの値だけを観察します。このユーザーにはカスタムロールも割り当てられています。 $user_object->caps
の1つの値は、偶然私のカスタムユーザロールの名前です。ただし、それとまったく同じ値が$user_object->allcaps
にもリストされています。
$user_object->caps
と$user_object->allcaps
の違いは何ですか?$user_object->caps
WOULDN'Tにリストされている機能が$user_object->allcaps
の下に見つかるような状況はありますか?$user_object->caps
を使用する必要があると思われる理由はありますか、それとも特定のユーザーの$user_object->allcaps
の確認に頼ることができますかWP_Userクラス のプロパティに対するコメントを調べると、allcaps
は次のようになります。
個人ベースおよびロールベースを含む、ユーザーが持っているすべての機能。
そしてcaps
は:
ユーザーに付与されている個々の機能。
しかし、あなたはおそらく直接プロパティを使うべきではありません。 WP_User
には has_cap
メソッドがあります。これは適切なプロパティをチェックし、関連するフィルタを通して結果を実行するためです。