Gibt es ein bedingtes Tag, mit dem ich den bestimmten Inhalt nur anzeigen kann, wenn der Benutzer KEIN Abonnent ist?
quelle
Gibt es ein bedingtes Tag, mit dem ich den bestimmten Inhalt nur anzeigen kann, wenn der Benutzer KEIN Abonnent ist?
<?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';
?>
Ein noch einfacherer Weg, als @Brady Ihnen gezeigt hat, ist die Verwendung von current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Es gibt auch ein Äquivalent für MU-Installationen mit dem Namen 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!";
Wenn Sie sich die Quelle der Funktionen für Einzel- oder MU-Installationen ansehen, werden Sie feststellen, dass sich beide im Wesentlichen auf die Funktionen verlassen wp_get_current_user()
und diese dann überprüfen has_cap
. Wenn Sie nun sehen möchten, woher die Kappe kommt, WP_User
kommt die Klasse / das Objekt ins Spiel.
Dann gibt es auch noch author_can( $GLOBALS['post'], 'capability' );
. Alle diese Funktionen befinden sich ~/wp-includes/capabilities
direkt untereinander.
Wo ist der Unterschied zwischen current_user_can(_FOR_BLOG)
und user_can
?
user_can()
ist die neuere (seit 3.1), benötigt aber den Benutzer als Objekt. Sie können es also in Fällen verwenden, in denen Sie nicht den aktuellen Benutzer, sondern einige Benutzer ansprechen möchten .current_user_can_*()
Es ist offensichtlich.author_can()
Mit dieser Option können Sie Funktionen anhand eines Post-Objekts überprüfen. Dieses Objekt ist nur für Beiträge verfügbar, die sich bereits in der Datenbank befinden. Es dient also hauptsächlich dazu, den Zugriff auf bestimmte Post-Funktionen zuzulassen / zu verweigern.
current_user_can()
Codex-Seite hat sich AFAIK nicht geändert.Ist es das was du meinst?
Weitere Details zu den IDs für verschiedene Ebenen: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Es gibt auch die Funktion current_user_can (), mit der Sie bestimmte Funktionen für mehr Flexibilität angeben können. http://codex.wordpress.org/Function_Reference/current_user_can
quelle
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.