私はただ次のことを実感しました。
// Call the current user info
global $current_user;
// Add a capability
// and set the 2nd argument ($grant) to false
$current_user->add_cap( 'some_cap', false );
今、私はユーザーに機能を追加することに成功しましたが、彼女/彼にこの機能へのアクセスを拒否しました。
$current_user->has_cap( 'some_cap' );
で確認したら、true
が返されます。これはhas_cap関数の引数のラッパーにすぎないので、current_user_can( 'some_cap' );
にも同じことが言えます。
Q:2番目の引数はどこで使われますか?私は何か問題がありますか?
私はあなたがそれを正しく使っていると思います。これは実際にはWordPressのバグだと思います。
ロール$somerole->add_cap( 'some_cap', false );
についても同じことをすると、期待通りに動作します。