2017-09-20 2 views
3

Ich habe Probleme mit einer Wordpress-Mitglieder-Website. Die Installation ist Multisite mit Subdomains.Benutzer ist beim Aktualisieren der Seite abgemeldet

Ich möchte, dass der Benutzer angemeldet ist, um alle Seiten der Subdomain-Site anzuzeigen. Um dies zu tun Ich habe gegen alle Funktionen entschieden und <?php wp_login_form(); ?> im page-template platziert, wie hier gezeigt ...

<?php if (is_user_logged_in()) { 
get_header(); ?> 
    <div class="page-content-wrapper "> 
    </div> 
<?php get_footer();?> 

<?php } else {?> 
<?php get_header('login'); ?> 
<?php wp_login_form(); ?> 
<?php get_footer('login');?> 
<?php }?> 

Dieser einen Zauber wirkt - wenn ein is_user_logged_in() erhalten sie die Seite und wenn sie nicht bekommen wp_login_form();. Mein Problem entsteht beim Verlassen dieser Seite. Der Benutzer ist ausgeloggt und muss sich bei der Rückkehr zur Seite erneut anmelden, wie hier gezeigt.

Login error

Dies geschieht auch, wenn ich if (is_user_logged_in()) zu anderen Seiten hinzufügen.

Ich habe auch versucht, eine Umleitung zu wp-login.php, wenn ein Benutzer anmelden erforderlich ist, aber das tut der gerade zurück zu wp-login.php Schleifen, die mir zeigt, dass ich ein Cookie Problem, da die Anmeldeinformationen angemeldet habe.

Ich habe bemerkt, dass, bevor die Cookies anmelden als

Cookies before login

und nach der Anmeldung als

Cookies after login

Nach erneuten Besuch der Seite gezeigt, dass sie zeigen, gezeigt, die Login-Cookies benötigt zum Original zurückkehren. Benutzeranmeldeinformationen werden jedoch nie gespeichert.

Jede Hilfe wäre willkommen.

UPDATE Es scheint, dass, wenn ich zum ersten Mal in wp-admin log ich die Seite besuchen und die Benutzerinformationen angezeigt wird. Wenn ich die Seite verlasse, wird der Benutzer ausgeloggt und eine Anmeldung ist erforderlich.

+0

Könnte es sein, weil meine Hauptwebsite HTTPS ist und die Subdomains HTTP sind und der Cookie nicht in der Lage ist, eine Login-Sitzung zu authentifizieren? – Darren

+0

Das war nicht das Problem. – Darren

+0

gibt es eine Möglichkeit, einen Link zu der Website und Anmeldeinformationen zu testen (nur eine für den Test erstellen) –

Antwort

5

Es ist ein Code Problem in Ihrer footer.php Linie 38:

<a role="button" href="<?php wp_logout(); ?> " 

Sie wp_logout verwenden() die Abmeldung eines Benutzers macht, wenn sie das Front-End der Website besuchen. Sie müssen es durch diese ersetzen:

<a role="button" href="<?php echo wp_logout_url(); ?> "> 

dieses gut ist, wie es auf den Link, um Benutzer zu ermöglichen, setzen wird beim Klicken abzumelden.

Verwandte Themen