¿Existe alguna etiqueta condicional que me permita mostrar cierto contenido solo si el usuario NO es un suscriptor?
fuente
¿Existe alguna etiqueta condicional que me permita mostrar cierto contenido solo si el usuario NO es un suscriptor?
<?php
global $current_user; // Use global
get_currentuserinfo(); // Make sure global is set, if not set it.
if ( ! user_can( $current_user, "subscriber" ) ) // Check user object has not got subscriber role
echo 'User is a not Subscriber';
else
echo 'User is a Subscriber';
?>
Una manera aún más simple que @Brady te mostró es usar current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
También hay un equivalente para instalaciones MU, llamado 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!";
Al mirar la fuente de las funciones para instalaciones individuales o MU , verá que ambas dependen básicamente wp_get_current_user()
y luego realizan una verificación has_cap
. Ahora, si quieres ver de dónde viene el límite, entonces la WP_User
clase / objeto entra en el juego.
Entonces hay también author_can( $GLOBALS['post'], 'capability' );
. Todas esas funciones están dentro, ~/wp-includes/capabilities
una debajo de la otra.
Ahora, ¿dónde está la diferencia entre current_user_can(_FOR_BLOG)
y user_can
?
user_can()
es el más nuevo (desde 3.1), pero necesita al usuario como objeto. Por lo tanto, puede usarlo en casos en los que no desea apuntar al usuario actual, sino a algunos usuarios.current_user_can_*()
es obvio.author_can()
le permite verificar capacidades contra un objeto de publicación. Este objeto solo está disponible para publicaciones que ya están en la base de datos. Por lo tanto, es principalmente para permitir / denegar el acceso a funciones de publicación específicas.
current_user_can()
página del códice AFAIK no ha cambiado.¿Es esto lo que quieres decir?
Más detalles sobre los ID para diferentes niveles: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
También existe la función current_user_can (), que le permite denotar capacidades específicas para una mayor flexibilidad. http://codex.wordpress.org/Function_Reference/current_user_can
fuente
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.