So fügen Sie HTML zu einer Vorlage nur hinzu, wenn der Benutzer ausgeloggt / nicht registriert ist

Ich versuche, meiner Startseite nur dann eine Anmelde- / Registrierungsschaltfläche hinzuzufügen, wenn ein Benutzer ausgeloggt ist. Ich habe versucht, den do_shortcode-Aufruf in die entsprechende Vorlage zu verwenden: (Ich weiß, dass es derzeit keine Bedingung gibt, zu überprüfen, ob eingeloggt ist, aber ich möchte nur sicherstellen, dass der Shortcode überhaupt zuerst funktioniert)

add_shortcode('loginout_button','add_loginout_button'); function add_loginout_button { $content = ''; return $content; } 

was dann mit dem aufgerufen wird

 echo do_shortcode('[loginout_button']); 

in der Vorlage, aber der Shortcode registriert nicht – es gibt nur [loginoout_button] zurück. Ich schätze, das ist dann nicht der richtige Weg! Muss ich einen Filter verwenden und dann apply_filters? Es machte Sinn in meinem Kopf, aber ich brauche ehrlich gesagt Hilfe bei diesem – Danke im Voraus!

Solutions Collecting From Web of "So fügen Sie HTML zu einer Vorlage nur hinzu, wenn der Benutzer ausgeloggt / nicht registriert ist"

Zunächst einmal ist Ihr Code für die Verwendung von Shortcodes falsch. Der korrekte Code lautet:

 echo do_shortcode('[loginout_button]'); 

Wenn Sie die Anmelde- / Abmeldeschaltfläche nur dann zurückgeben möchten, wenn der Benutzer nicht angemeldet ist, können Sie die function is_user_logged_in() . Es gibt zwei Möglichkeiten, dies zu tun

1). Bedingte Logik in Ihrem Shortcode.

 add_shortcode('loginout_button','add_loginout_button'); function add_loginout_button() { if ( is_user_logged_in() ) { return ''; } return false; } 

Dies ist der empfohlene Weg, weil Sie den Shortcode überall verwenden können und das erwartete Ergebnis erhalten.

2) Wickeln Sie Ihren Code für die Verwendung der Kurzwahlnummer in das Bedingungs-Tag ein

 if ( is_user_logged_in() ) { echo do_shortcode('[loginout_button]'); } 

Haben Sie Ihren Code kopiert / eingefügt?

Es fehlt die Klammer auf add_loginout_button. Es sollte sein:

 function add_loginout_button() { $content = ''; return $content; } 

Dies sollte in der functions.php hinzugefügt werden.

Und Sie können mit is_user_logged_in () auch prüfen, ob ein Benutzer angemeldet ist oder nicht:

 add_shortcode('loginout_button','add_loginout_button'); function add_loginout_button() { if( is_user_logged_in() ) { $content = ''; } else { $content = ''; } return $content; }