Descubrir si el usuario conectado no es un suscriptor
¿Existe alguna etiqueta condicional que me permita mostrar cierto contenido solo si el usuario NO es un suscriptor?

Una forma aún más sencilla, como te mostró @Brady, es usar current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "¡Hola, querido suscriptor! ¡Qué gusto verte de nuevo!";
MU
También existe un equivalente para instalaciones MU, llamado current_user_can_for_blog
:
global $blog_id;
if ( current_user_can_for_blog( $blog_id, 'subscriber' ) )
echo "¡Hola, querido suscriptor! ¡Qué gusto verte de nuevo en este blog!";
Detrás de escena
Al mirar el código fuente de las funciones para instalaciones simples o MU, verás que ambas dependen básicamente de wp_get_current_user()
y luego hacen una verificación de has_cap
.
Si quieres ver de dónde viene el capability, entonces entra en juego la clase/objeto WP_User
.
Otros miembros de este conjunto
También está author_can( $GLOBALS['post'], 'capability' );
. Todas estas funciones se encuentran en ~/wp-includes/capabilities
, una debajo de la otra.
¿Cuándo usar cuál?
Ahora, ¿cuál es la diferencia entre current_user_can(_FOR_BLOG)
y user_can
?
user_can()
es la más nueva (desde la versión 3.1), pero necesita al usuario como objeto. Puedes usarla en casos donde no quieras apuntar al usuario actual, sino a algún usuario.current_user_can_*()
es obvio.author_can()
te permite verificar capabilities contra un objeto de post. Este objeto solo está disponible para posts que ya están en la base de datos. Por lo tanto, es principalmente para permitir/denegar el acceso a características específicas de posts.

Siento que esto necesita actualizarse, porque:
No pases un nombre de rol a current_user_can(), ya que no está garantizado que funcione correctamente (ver #22624).
de la página del codex de current_user_can()
que yo sepa no ha cambiado.

@ialocin Puedes actualizar eso si quieres (tiene más de 2 años). Básicamente tienes razón. Por otro lado, un rol también se añade como capacidad ;)

¿Es esto lo que quieres decir?
global $userdata;
get_currentuserinfo();
if ( $userdata->user_level != 0 )//verificar nivel de usuario por ID de nivel
{
echo 'El usuario no es un Suscriptor';
}
else
{
echo 'El usuario es un Suscriptor';
}
Más detalles sobre los ID's para los diferentes niveles: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
También está la función current_user_can(), que te permite denotar capacidades específicas para mayor flexibilidad. http://codex.wordpress.org/Function_Reference/current_user_can

No uses niveles de usuario... Esto es lo que dice el codex al respecto: Para mantener la compatibilidad con versiones anteriores de plugins que aún utilizan el sistema de niveles de usuario (aunque esto está muy desaconsejado), los Roles predeterminados en WordPress también incluyen Capacidades que corresponden a estos niveles. Los Niveles de Usuario finalmente quedaron obsoletos en la versión 3.0.
