WordPress leitet Benutzer um, wenn er nicht angemeldet ist

Lesezeit: 3 Minuten

Ich verwende den folgenden Code in functions.php, um Benutzer umzuleiten, die nicht angemeldet sind, außer wenn Sie sich in wp-login.php befinden.

if(!is_user_logged_in() && $pagenow != 'wp-login.php') {
wp_redirect( 'http://signup.mysite.com', 302 );
}

Ich habe jedoch ein Warenkorb-Plugin installiert, das eine andere Anmeldeseite verwendet und mysite.com/wp-login.php im Grunde auf mysite.com/account/login umleitet.

Gibt es einen Code, mit dem ich URL-Pfade von der Umleitung ausschließen kann, vielleicht etwas, das ersetzt werden kann $pagenow != 'wp-login.php'?

  • Leitet Ihr Warenkorb-Plugin jeden Pfad zu mysite.com/account/login um, wenn Sie nicht angemeldet sind?

    – ksg91

    28. Juni 2012 um 5:20 Uhr

  • Nein, Sie können die Website weiterhin durchsuchen. Aber wenn Sie versuchen, auf die Standard-wp-login.php zuzugreifen, wird sie zu amysite.com/account/login umgeleitet, einer benutzerdefinierten Anmeldeseite.

    – Riso

    28. Juni 2012 um 5:49 Uhr

Wie wäre es damit..

//
//  Re-direct not-logged-in users to holding page
//
if(!is_user_logged_in() && curPageURL() != 'http://mysite.com/wp-login.php') {
    wp_redirect( 'http://signup.mysite.com', 302 );
    exit;
}

//
//  Get current page URL
//
function curPageURL() {

    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}

    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    } else {
        $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    }

    return $pageURL;
}

  • Möchten Sie Ihren Code kommentieren? Fügen Sie einige Erklärungen dazu hinzu, was Sie getan haben und warum, es fügt Ihrer Antwort einen Mehrwert hinzu, abgesehen von “Wie wäre es damit” und einfachem Code.

    – Jaroslaw

    4. Oktober 2012 um 6:39 Uhr

  • es ist ziemlich offensichtlich, was er tut. curPageURL überprüft die Seite, auf der Sie sich befinden. Wenn es mit wp-login übereinstimmt, kann es problemlos ohne Umleitung geladen werden

    – Nikolaos Vassos

    23. Oktober 2012 um 19:31 Uhr

  • Es ist nicht offensichtlich für Leute, die noch lernen – da Stackoverflow das Selbstlernen verbessern sollte, sind Kommentare immer gut, um zu erklären und zu lehren, warum und wie die bereitgestellte Lösung funktioniert.

    – pr0cz

    10. September 2020 um 10:49 Uhr


Funktionen.php öffnen…

Paste:

// Redirect users who arent logged in...
function login_redirect() {

    // Current Page
    global $pagenow;

    // Check to see if user in not logged in and not on the login page
    if(!is_user_logged_in() && $pagenow != 'wp-login.php')
          // If user is, Redirect to Login form.
          auth_redirect();
}
// add the block of code above to the WordPress template
add_action( 'wp', 'login_redirect' );

hoffe das hilft 🙂

Sie könnten mit WordPress experimentieren is_page( 'login' ) oder vielleicht is_page( 'account/login' ) Bedingungen.

  • Das schien mit meiner Konfiguration nicht zu funktionieren. Gibt es eine Möglichkeit, Benutzer nur umzuleiten, wenn sie versuchen, auf die Homepage zuzugreifen? Ich habe versucht, is_front_page() zu verwenden, aber das hat nicht funktioniert.

    – Riso

    28. Juni 2012 um 5:55 Uhr


  • if(!is_user_logged_in() && is_front_page()) { wp_redirect( ‘signup.mysite.com‘); }

    – Riso

    28. Juni 2012 um 8:00 Uhr

  • Es sieht so aus, als ob Sie direkt nach Ihrer Weiterleitungs-URL ein verirrtes Semikolon haben. Versuchen Sie, das zu entfernen. Außerdem sollten Sie erwägen, dies in den einzubinden pre_get_posts filtern, um einige Datenbankabfragen zu speichern.

    – Dominik P

    29. Juni 2012 um 4:27 Uhr

 <?php     
if (!is_user_logged_in()) {
?> 
<style>
.lor1{ display:none;}
.lor1.kun{ display: block;}
.lor1.user_not_login{ display: block;}
</style>
<?php }  ?>
  1. main div(.lor1) bedeutet comman div start after Header und fein vorher Fusszeile
  2. Neue Klasse (.lor1.kun) in Haupt-Div hinzufügen, wenn Benutzer diese Hauptklassenanzeige anmelden: block;
  3. Neues HTML erstellen Bsp. Anzeige der Chaos-Logging-Erste (.lor1.user_not_login)

HINZUFÜGEN diesen Code in header.php

1175790cookie-checkWordPress leitet Benutzer um, wenn er nicht angemeldet ist

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy