Um Beiträge oder Textbereiche in Wordpress anzuzeigen, die nur registrierte Mitglieder lesen können, die eingeloggt sind, werden Shortcodes benutzt. Diese Kürzel werden in eckigen Klammern vor und nach dem geschützten Text eingefügt.
Der Name des Shortcodes kann frei gewählt werden.
In diesem Beispiel hat der Wordpress-Shortcode den Namen “[is-login]”.
- Shortcodes werden immer in eckige Klammern gesetzt.
- Zwischen dem Shortcode können auch Bilder oder Links etc. eingefügt werden.
- Geschlossen wird der Shortcode mit einem Schrägstrich vor dem Namen des Shortcodes.
Der Wordpress-Shortcode muss vorher registriert werden.
Dazu muss der folgende PHP-Code in die “functions.php” des Wordpress Themes.
functions.php
function login_shortcode( $atts, $content = null ) {
if (is_user_logged_in()) {
return '<span class="is-login">' . $content . '</span>';}
}
add_shortcode( 'is-login', 'login_shortcode' );
- Die Funktion “is_user_logged_in( )” sorgt dafür, dass der Content(Inhalt) nur für angemeldete User sichtbar ist.
- Für die Ausgabe wurde optional eine Span-Klasse vergeben, um eine Gestaltung über die style.css zu ermöglichen.
- Mit “add_shortcode” wird der Shortcode “[is-login]” im Wordpress-Theme registriert.
Beispiel für die Gestaltung in der “style.css”.
.is-login {
background:#0f0;
}
Hier wurde eine grüne Hintergrundfarbe für den Text vergeben.
Mit Standard-Text für Gäste
Soll für nicht angemeldete User ein Standard-Text erscheinen, kann der folgende PHP-Code in die functions.php des Wordpress Themes geschrieben werden:
function login_shortcode( $atts, $content = null ) {
if (is_user_logged_in()) {
return '<span class="is-login">' . $content . '</span>';}
else {
return 'Diese Info ist nur für Gäste sichtbar'; }
}
add_shortcode( 'is-login', 'login_shortcode' );
Die Info erscheint nur für nicht angemeldete User.
Zwei Shortcodes – für eingeloggte User und für Gäste
Es werden zwei Shortcodes in der “functions.php” des Wordpress Themes registriert.
function login_shortcode( $atts, $content = null ) {
if (is_user_logged_in()) {
return '<span class="is-login">' . $content . '</span>';}
}
function logout_shortcode( $atts, $content = null ) {
if (!is_user_logged_in()) {
return '<span class="is-logout">' . $content . '</span>';}
}
add_shortcode( 'is-login', 'login_shortcode' );
add_shortcode( 'is-logout', 'logout_shortcode' );
Die Funktion für den zweiten Shortcode “!is_user_logged_in( )” hat ein Ausrufezeichen, damit wird der Inhalt nur für ausgeloggte User angezeigt.
Die Funktion “is_user_logged_in( )” kann man auch für “selbstschließende Shortcodes” anwenden (siehe Grundlagen für Shortcodes).
Für Inhalte außerhalb des Textbereiches werden “benutzerdefinierte Felder” verwendet. Hier kann die Funktion “is_user_logged_in( )” ebenfalls verwendet werden.
Weitere Informationen:
Benutzerdefinierte Felder in Wordpress