回答:
@Bradyは、あなたが使用している示したよりもさらに簡単な方法、current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
MUのインストールに相当するものもありますcurrent_user_can_for_blog
。
global $blog_id;
if ( current_user_can_for_blog( $blog_id 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again on this blog!";
単一またはMUインストールの機能のソースを見ると、基本的に両方が依存していることwp_get_current_user()
と、次にをチェックしてhas_cap
いることがわかります。キャップがどこから来ているのかを確認したい場合は、WP_User
クラス/オブジェクトがゲームに入ります。
次にもありauthor_can( $GLOBALS['post'], 'capability' );
ます。これらの関数はすべて~/wp-includes/capabilities
互いに直下にあります。
さて、どこの違いだcurrent_user_can(_FOR_BLOG)
とはuser_can
?
user_can()
は新しいものです(3.1以降)が、オブジェクトとしてのユーザーが必要です。そのため、現在のユーザーではなく一部のユーザーをターゲットにしたくない場合に使用できます。current_user_can_*()
明らかです。author_can()
投稿オブジェクトに対して機能をチェックできます。このオブジェクトは、すでにDBにある投稿でのみ使用できます。したがって、これは主に特定の投稿機能へのアクセスを許可/拒否するためのものです。これはどういう意味ですか?
global $userdata;
get_currentuserinfo();
if ( $userdata->user_level != 0 )//check user level by level ID
{
echo 'User is a not Subscriber';
}
else
{
echo 'User is a Subscriber';
}
さまざまなレベルのIDの詳細:http : //codex.wordpress.org/Roles_and_Capabilities#User_Levels
current_user_can()関数もあり、特定の機能を示して柔軟性を高めることができます。 http://codex.wordpress.org/Function_Reference/current_user_can
To maintain backwards compatibility with plugins that still use the user levels system (although this is very much discouraged), the default Roles in WordPress also include Capabilities that correspond to these levels. User Levels were finally deprecated in version 3.0.
current_user_can()
コーデックスのページ からAFAIKは変更されていません。