Wie leite ich nicht angemeldete Benutzer auf eine bestimmte Seite um?

So leiten Sie nicht angemeldete Benutzer, die eine bestimmte Seite / URL anfordern, auf eine andere Seite / URL um und zeigen eine Nachricht wie “Nur für Mitglieder” an. Ich weiß, es ist ziemlich einfach zu codieren mit! Is_user_logged_in () function, aber ich weiß nicht, wie man es programmiert, weil ich ein Neuling zu WordPress bin. Sorge dafür, mir die Datei zu sagen, um den Code auch zu setzen.

Solutions Collecting From Web of "Wie leite ich nicht angemeldete Benutzer auf eine bestimmte Seite um?"

Hier sind zwei Beispiele, die Sie leicht modifizieren müssen, um für Ihre spezifischen Bedürfnisse arbeiten zu können.

add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' ); function redirect_non_logged_users_to_specific_page() { if ( !is_user_logged_in() && is_page('add page slug or id here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) { wp_redirect( 'http://www.example.dev/page/' ); exit; } 

Setzen Sie dies in Ihre Child-Themes-functionsdatei und ändern Sie die Seiten-ID / Slug und die Weiterleitungs-URL.

Sie können auch folgenden Code verwenden:

 add_action( 'template_redirect', 'redirect_to_specific_page' ); function redirect_to_specific_page() { if ( is_page('slug') && ! is_user_logged_in() ) { wp_redirect( 'http://www.example.dev/your-page/', 301 ); exit; } } 

Sie können die Nachricht direkt zur Seite hinzufügen, oder wenn Sie die Nachricht für alle nicht angemeldeten Benutzer anzeigen möchten, fügen Sie sie dem Code hinzu .

http://codex.wordpress.org/Function_Reference/wp_redirect

Wie können wir Ihnen sagen, wo Sie es hinstellen sollen, wenn Sie uns nicht gesagt haben, wo und was Sie es anzeigen möchten? Ganze Beiträge? Seiten? Benutzerdefinierte Teile von Seiten? Entschuldigung … Ich denke, meine Kristallkugel funktioniert heute nicht ganz.

Da du bist, und ich zitiere dich: “ein Neuling für WordPress” solltest du lieber lernen, als um direkte Antwort zu bitten.

Wohin sollten Sie den Verweis 1 Link lesen. Dadurch erfahren Sie, in welche Datei Sie es einfügen müssen.

Wie Sie es tun, sollten Sie zuerst Referenz-Link 2 und 3 lesen.

Insgesamt sollte es ungefähr so ​​aussehen:

 if ( is_user_logged_in() ) { the_content(); } else { echo 'For members only'; } 

Natürlich muss der obige Code in eine Schleife gehen . Sie können es so komplex oder so einfach aufbauen, wie Sie möchten. Zum Beispiel können Sie anstelle eines einfachen Textes, wenn Sie nicht angemeldet sind, beispielsweise das ganze Anmeldeformular anzeigen oder – wie ich vorschlagen würde – einen geteilten Bildschirm, auf dem sich der Benutzer anmelden kann (da der Benutzer ein Konto haben kann, aber vergessen hat, sich anzumelden) oder sich anmeldet (wenn er keinen hat).

  1. Vorlagenhierarchie
  2. Bedingte Tags
  3. Die Schleife

Nach Kommentaren hinzugefügt:

Um Use- header mit dem wp_login_url umzuleiten, überprüfen wp_login_url erneut die Referenzen 1 und 2:

 if ( is_user_logged_in() ) { the_content(); } else { header('Location: ' . wp_login_url()); } 

Referenz:

  1. Header – PHP
  2. wp_login_url

Sie können nicht auf eine bestimmte Seite redirect, aber jeder nicht eingeloggte Benutzer wird zum Anmeldebildschirm umgeleitet.

 < ?php auth_redirect(); ?> 

WordPress-Referenz: auth_redirect()

Um nur eine andere Lösung zu erwähnen.

Das wäre besser:

 if ( !is_user_logged_in() ) { auth_redirect(); } // continue as normal for authenticated users 

Was das bedeutet, leitet den Benutzer auf die Anmeldeseite um. Nach der Anmeldung wird der Benutzer zurück zu der sicheren Seite umgeleitet, auf die er anfänglich zuzugreifen versuchte.

Dokumentation hier:

https://codex.wordpress.org/Function_Reference/auth_redirect