Problem beim Versuch, die Website privat zu halten

Ich arbeite an einer Test-Site und habe versucht, meine Site privat zu machen, indem ich alle nicht angemeldeten Benutzer auf die Login-Seite umleite, indem ich den folgenden Code zur function.php-Datei meines Themes hinzufüge:

function redirect_user() { if ( ! is_user_logged_in() && ! is_page(array('login','register','lostpassword','contact-us' ))) { $return_url = esc_url( home_url( '/login/' ) ); wp_redirect( $return_url ); exit; } } add_action( 'template_redirect', 'redirect_user' ); 

Nach einigen Tests ist ein Problem aufgetreten, während ich versuchte, das Passwort meines Testbenutzers zurückzusetzen. Nachdem ich auf den Link geklickt habe, um mein Passwort zurückzusetzen, werde ich zur Anmeldeseite weitergeleitet. Ich versuche herauszufinden, wie ich das lösen könnte.

Da der Link zum Zurücksetzen des Passworts ein dynamisch generierter Link ist, kann er nicht zu meiner Seitenliste hinzugefügt werden, wie im Code-Extrakt oben gezeigt. Ich habe die WordPress-Dokumentation überprüft und sehe nichts hilfreiches. Jede Hilfe würde sehr geschätzt werden.

Solutions Collecting From Web of "Problem beim Versuch, die Website privat zu halten"

Nachdem ich einen Link zum Zurücksetzen des Passworts überprüft hatte, erkannte ich, dass zwei Variablen über $ _GET: key und login übergeben wurden. Ich habe den folgenden Code am Anfang meiner redirect_user () – function hinzugefügt:

 if(isset($_GET['key']) && isset($_GET['login'])) { return ; } 

Das Problem wurde nicht behoben, und ich wurde immer noch auf die Anmeldeseite umgeleitet, wenn ich auf den Link zum Zurücksetzen des Passworts klickte, jedoch nach der folgenden Bearbeitung:

 if(!isset($_GET['key']) && !isset($_GET['login'])) { return ; } 

Es funktioniert wie beabsichtigt, aber ich bin verwirrt warum.