是否有任何条件标签可以让我仅在用户不是订户的情况下显示某些内容?
是否有任何条件标签可以让我仅在用户不是订户的情况下显示某些内容?
Answers:
比@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()允许您根据发布对象检查功能。该对象仅可用于数据库中已经存在的帖子。因此,它主要用于允许/拒绝访问特定帖子功能。你是这个意思吗?
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尚未更改。