Erlauben Sie nicht angemeldeten Benutzern, nur die Anmeldeseite und die Seite zum Zurücksetzen des Passworts aufzurufen

Wie kann ich Benutzer redirect, wenn sie andere Seiten besuchen möchten, aber Login-Seite und Passwort zurücksetzen?

Meine Login-Seite ist eigentlich meine Homepage und ich möchte sie alle auf die Anmeldeseite redirect, wenn sie nicht eingeloggt sind. Außerdem können sie das Passwort zurücksetzen, wenn sie es vergessen haben.

Vielen Dank

Solutions Collecting From Web of "Erlauben Sie nicht angemeldeten Benutzern, nur die Anmeldeseite und die Seite zum Zurücksetzen des Passworts aufzurufen"

Sie haben angegeben, dass Ihre Anmeldeseite Ihre Startseite ist. Wenn Sie möchten, dass alle nicht angemeldeten Benutzer zur Anmeldung auf die Homepage weitergeleitet werden, müssen Sie einige Dinge überprüfen:

  1. Ist der Benutzer angemeldet?
  2. Ist die aktuelle Seite die Startseite?

Sie können diese Dinge mit is_user_logged_in() und is_front_page () tun. Wenn dies nicht der Fall ist, können Sie mit wp_redirect() den Benutzer auf die Homepage redirect.

Angenommen, Ihre Seite mit dem vergessenen Passwort ist eine “Seite”, können Sie auch is_page() in Ihrer Logik verwenden.

Sie müssen es mit einer Aktion verknüpfen, damit es so spät ausgetriggers wird, dass die Seite überprüft werden kann, aber früh genug, um den Benutzer sicher weiterzuleiten (dh bevor die Header gesendet werden). template_redirect ist dafür ideal.

 add_action( 'template_redirect', 'my_frontpage_redirect' ); function my_frontpage_redirect() { if ( ! is_user_logged_in() ) { if ( ! is_front_page() && ! is_page( 'my-password-reset' ) ) { wp_redirect( home_url() ); exit(); } } } 

Passen Sie den Slug im Aufruf von is_page() entsprechend dem Seiten-Slug für das Zurücksetzen des Passworts an.

Sie können eine Regel zum erneuten Schreiben in Ihre .htaccess-Datei hinzufügen, nach nicht angemeldeten Benutzern suchen und diese auf die Homepage redirect:

 RewriteEngine On RewriteBase / RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC] RewriteRule . /index.php [NC] 

Auf Ihrer Anmeldeseite sollten Sie einen Link zum Zurücksetzen des vergessenen Passworts angeben.

Aktivieren Sie unter Einstellungen, Lesen die Schaltfläche “Nur für registrierte Benutzer dieser Site sichtbar”. Alle Website-Besucher sehen die Login-Seite.

Nach der Anmeldung werden die Benutzer auf ihre Benutzerprofilseite weitergeleitet. Sie können diese Umleitung mit einem ähnlichen Code ändern, der auf die Startseite der Site umleitet. (In Ihrem Fall müssten Sie Ihre Startseite auf etwas anderes ändern, damit sie sich nicht zweimal anmelden müssen.)

 function go_here_after_login( $redirect_to, $request, $user ) { if (current_user_can( 'manage_options' )) {return $redirect_to;} else {return home_url();} return; } add_filter ('login_redirect', 'go_here_after_login', 10, 3); 

Es gibt viele Googles darüber, wie Sie Ihren Anmeldebildschirm ändern können.

Beachten Sie, dass Sie htaccess verwenden können, um eine Anmeldung zu verlangen. Mit dieser Methode können Sie jedoch die WP-Benutzerkonten verwenden, die Sie auf Ihrer Website haben.