Uma maneira ainda mais simples, do que @Brady mostrou a você, é usar current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
MU
Há também 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!";
Atrás da cortina
Ao olhar para a fonte das funções para single ou MU instalações , então você verá que ambos dependem basicamente de wp_get_current_user()
e, em seguida, faça uma verificação de has_cap
.
Agora, se você quiser ver de onde vem o limite, WP_User
class / objeto entra no jogo.
Outros membros deste conjunto
Depois, há também author_can( $GLOBALS['post'], 'capability' );
. Todas essas funções estão dentro de ~/wp-includes/capabilities
, logo abaixo umas das outras.
Quando usar o que?
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. Assim, você pode usá-lo nos casos em que não deseja segmentar o usuário atual, mas alguns usuários.
-
current_user_can_*()
é óbvio.
-
author_can()
permite verificar recursos em um objeto de postagem. Este objeto está disponível apenas para publicações que já estão no banco de dados. Então, é principalmente para permitir / negar o acesso a recursos de postagem específicos.