Respostas:
Uma maneira ainda mais simples do que a @Brady mostrou é o uso current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Também há um equivalente para instalações de MU, chamado 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!";
Ao olhar a fonte das funções para instalações únicas ou de MU , você verá que ambas dependem basicamente wp_get_current_user()
e, em seguida, fazem uma verificação has_cap
. Agora, se você quiser ver de onde vem o limite, a WP_User
classe / objeto entra no jogo.
Então há também author_can( $GLOBALS['post'], 'capability' );
. Todas essas funções estão dentro ~/wp-includes/capabilities
logo abaixo uma da outra.
Agora, onde está a diferença entre current_user_can(_FOR_BLOG)
e user_can
?
user_can()
é o mais novo (desde 3.1), mas precisa do usuário como objeto. Portanto, você pode usá-lo em casos em que não deseja segmentar o usuário atual, mas alguns usuários.current_user_can_*()
é obvio.author_can()
permite verificar recursos em um objeto de postagem. Este objeto está disponível apenas para postagens que já estão no banco de dados. Portanto, é principalmente para permitir / negar o acesso a recursos específicos de postagem.É isto que você quer dizer?
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';
}
Mais detalhes sobre os IDs para diferentes níveis: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Há também a função current_user_can (), que permite indicar recursos específicos para maior flexibilidade. 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()
página de codex AFAIK não mudou.