Text in Wordpress-Artikel nur für angemeldete User sichtbar machen

wp_logoUm 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]”.

 

image

 

  • 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

 

image

 

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:

Grundlagen über Shortcodes

Benutzerdefinierte Felder in Wordpress

Formatvorlagen PostFormats

Navigationsmenü in Wordpress Themes einbauen

Wordpress index.php erstellen

Sidebar oder Footer-Widget in Wordpress erstellen

Kommentare   

+2 #10 Mirjam 2015-06-23 17:10
Fast 4 Jahre später - und diese Lösung ist immer noch perfekt! Ich bin immer wieder happy, wenn sich meine Frage mit ein paar Zeilen Quellcode ohne Plugin beantworten lässt :-)
Danke, Mirjam
+1 #9 Bronko 2014-07-30 17:05
Hat jemand eine Idee, wie ich das umschreiben muss, damit nur bestimmte User Text nicht sehen?
+1 #8 René 2014-03-31 23:39
Genial!
-2 #7 Blogger 2014-03-04 20:39
Gibt es denn dafür wirklich kein Plugin?
+2 #6 Manni 2013-09-04 16:32
Hallo kai,
das ist kein Plugin, es gibt keinen Download-Link.
Der oben gezeigte Code muss in die functions.php Deines Themes.
Bitte richtig lesen!
-3 #5 kai 2013-09-04 14:27
zitiere Ole:
Fette Sache! Seit Tagen bin ich auf der Suche noch so etwas und habe sogar schon im WP-Forum eine Frage gepostet...dabei geht es so einfach, völlig ohne irgendwelche Plugins!

Grandios!!!

Wo ist der Donwlaode link?
-3 #4 kai 2013-09-04 14:26
wo ist den der Downlaode link des Plugins?
+1 #3 Manni 2012-10-22 20:05
Hallo Steven,
Die Anpassung erfolgt über die style.css
Es kann sein, dass eine Klasse im Theme schon definiert ist.
Einfach einen anderen Klassennamen verwenden.
+1 #2 Steven 2012-10-22 14:43
Super, vielen Dank, aber irgendwie funktioniert die Klassenzuweisun g bei Zwei Short Codes nicht. Zumindest passiert da nichts, wenn man es versucht anupassen.
+1 #1 Ole 2011-12-07 10:52
Fette Sache! Seit Tagen bin ich auf der Suche noch so etwas und habe sogar schon im WP-Forum eine Frage gepostet...dabe i geht es so einfach, völlig ohne irgendwelche Plugins!

Grandios!!!