So leiten Sie Benutzer um, wenn sie nicht in WordPress angemeldet sind » Seitenumleitung

Veröffentlicht: 2022-01-02

So leiten Sie um, wenn Sie nicht in WordPress angemeldet sind Im letzten Beitrag habe ich gezeigt, wie man überprüft, ob der Benutzer in WordPress angemeldet ist. Ein häufiger Grund, warum Sie überprüfen möchten, ob der WordPress-Benutzer angemeldet ist, besteht darin, verschiedene Seiten basierend auf dem Anmeldestatus des WordPress-Benutzers anzuzeigen. Wenn Sie Benutzer umleiten möchten, die nicht in WordPress angemeldet sind, können Sie dies erreichen, indem Sie ein Code-Snippet in Ihre Datei functions.php einfügen, wie Sie in diesem kurzen Tutorial sehen werden.

Warum Benutzer in WordPress umleiten?

Das Umleiten von Benutzern ist eine wichtige Anforderung für die meisten WordPress-Sites. Es gibt verschiedene Zeiten, in denen Sie Benutzer von einer Seite auf eine andere umleiten möchten. Beispielsweise können Sie WooCommerce-Benutzer nach dem Checkout umleiten, oder Sie können den Benutzer nach der Registrierung oder Umleitungsanmeldung auf der Website umleiten.

Umzuleiten, wenn man nicht in WordPress eingeloggt ist, ist eine der häufigsten Umleitungen. Es gibt zwar Plugins, die bei der Verwaltung der Umleitung in WordPress helfen können, aber das Hinzufügen eines kleinen Ausschnitts, der dieses Problem löst, ist eine bessere Lösung, als sich auf ein Plugin eines Drittanbieters zu verlassen.

In diesem Tutorial zeige ich, wie Sie ein Snippet in Ihr Design oder Plugin einfügen, das die Weiterleitung für Benutzer erstellt, die nicht auf einer Seite Ihrer Wahl angemeldet sind.

Schritte zum Umleiten, wenn Sie nicht in WordPress angemeldet sind

Um die Weiterleitung zu implementieren, wenn Sie nicht in WordPress angemeldet sind, sollten Sie die folgenden Schritte ausführen:

  1. Melden Sie sich bei Ihrer WordPress-Site an und navigieren Sie im Haupt-Dashboard-Menü im Menü „Darstellung“ zum Design-Editor.
  2. Öffnen Sie die Datei functions.php des aktiven WordPress-Themes. Sie können auch das CPanel oder FTP verwenden, um auf die Datei functions.php des aktiven Designs zuzugreifen. Es befindet sich auf diesem Weg – wp-root-installation/wp-content/themes/active-theme/functions.php
  3. Erstellen Sie einen Aktions-Hook, der sich an den Admin-Initialisierungs -Hook – admin_init , anhängt, zum Beispiel add_action('init', 'redirect_if_not_logged_in') . Dieser Hook verfügt über eine Callback-Funktion, die über die Logik verfügt, um zu überprüfen, ob der Benutzer bei WordPress angemeldet ist, und wenn er nicht angemeldet ist, wird er auf die von uns gewünschte Seite umgeleitet.
  4. Erstellen Sie die Callback-Funktion wie oben erwähnt und fügen Sie den Code entsprechend hinzu.
  5. Speichern Sie die Änderungen und gehen Sie zum Frontend, um zu testen, ob die nicht angemeldeten Benutzer auf die Seite umgeleitet werden, die Sie im Code hinzugefügt haben.

Lassen Sie uns demonstrieren, wie Sie eine Weiterleitung hinzufügen können, wenn der Benutzer nicht in WordPress angemeldet ist. Ich werde das Standard-WordPress-Design auf der localhost-Installation verwenden, aber dies kann für alle anderen Websites funktionieren, unabhängig vom Design und der Hosting-Umgebung.

Der Code zum Hinzufügen einer Weiterleitung kann auch eine andere Bedingung annehmen, wie in den meisten Fällen, wenn Sie Inhalte von nicht angemeldeten Benutzern einschränken möchten, würden Sie zwei Bedingungen überprüfen:

  • Wenn der Benutzer angemeldet ist
  • Wenn sich der Benutzer auf der Seite befindet, auf der Sie den eingeschränkten Inhalt haben

Wenn diese Bedingungen erfüllt sind, sollten Sie die Funktion wp_redirect() verwenden, um den Benutzer auf die Seite Ihrer Wahl umzuleiten.

WP-Funktion: wp_redirect()

Dies ist eine WordPress-Umleitungsfunktion, die in Themes und Plugins verwendet werden kann, um Benutzer umzuleiten. Der allgemeine Ausdruck dieser Funktion lautet wie folgt:

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Wie Sie sehen können, hat die Funktion drei Parameter, die wie folgt sind:

Parameter Beschreibung
$location Dies ist die URL, an die Sie den Benutzer umleiten möchten. Wenn Sie diese Funktion verwenden, wenn der Benutzer nicht angemeldet ist, müssen Sie die URL zu der Seite angeben, auf der wir den Benutzer umleiten, wie Sie im Codebeispiel sehen werden
$status Dies ist ein optionaler Parameter, der möglicherweise nicht oft verwendet wird, aber es ist der zu verwendende HTTP-Antwortstatuscode. Standardmäßig '302' und Sie können 301 für eine permanente Weiterleitung verwenden. Seien Sie vorsichtig, wenn Sie diesen Parameter mit der 301-Umleitungsoption verwenden.
$x_redirect_by Dies ist einfach die Anwendung, die die Umleitung anwendet, und dies wird den Standardwert, der WordPress ist, selten ändern

Vorlagenumleitungsaktion, wenn der Benutzer nicht angemeldet ist

Um den nicht in WordPress angemeldeten Benutzer umzuleiten, können Sie jetzt die Funktion wp_redirect mit der bedingten Prüfung verwenden, ob der Benutzer wie folgt angemeldet ist:

 add_action( 'template_redirect', 'redirect_if_user_not_logged_in' );

Funktion Umleitung_wenn_Benutzer_nicht_angemeldet_in() {

	if ( is_page('slug || ID') && ! is_user_logged_in() ) { //Beispiel kann is_page(23) sein, wobei 23 die Seiten-ID ist

		wp_redirect( 'http://ihre-weiterleitungsseite-hier'); 
 
     exit;// vergiss diesen Ausgang nie, da es sehr wichtig ist, dass wp_redirect() den Ausgang / die hat
   
   }
   
}

Ersetzen Sie den Slug der bedingten Prüfung durch Ihre entsprechende Seite und ersetzen Sie auch die Umleitungs-URL im obigen Code und fügen Sie sie der functions.php hinzu, um die Benutzer umzuleiten, die nicht auf diese Seiten-URL eingeloggt sind.

Admin-Init-Umleitungsaktion, wenn der Benutzer nicht angemeldet ist

Alternativ können Sie admin_init anstelle von template_redirect verwenden, um den Benutzer umzuleiten, wenn er nicht in WordPress angemeldet ist.

Der Code sollte bis auf das Hinzufügen des Action-Hooks identisch sein. Der Code sollte wie folgt lauten:

 add_action( 'admin_init', 'redirect_if_user_not_logged_in' );

Funktion Umleitung_wenn_Benutzer_nicht_angemeldet_in() {

if ( !is_user_logged_in() && is_page('slug') ) {

      wp_redirect( 'http://ihre-weiterleitungsseite-hier'); 
   
   Ausfahrt;
   }
}

Wenn wir diesen Code zum standardmäßigen WordPress-Theme functions.php hinzufügen und den Slug für die Seite hinzufügen, auf der wir die Umleitung und die URL für das Ziel erstellen möchten, funktioniert es perfekt, wie Sie sehen können:

So leiten Sie um, wenn Sie nicht in WordPress angemeldet sind

Abschließende Gedanken

Wenn Sie eine Weiterleitung erstellen möchten, wenn der Benutzer nicht bei WordPress angemeldet ist, müssen Sie zuerst mit dem Code, den ich in diesem Beitrag geteilt habe, prüfen, ob der Benutzer angemeldet ist, und dann die Funktion wp_redirect() verwenden, um das neue Ziel dort hinzuzufügen, wo Benutzer es sollten umgeleitet werden, wenn sie auf eine bestimmte Seite oder einen bestimmten Beitrag zugreifen.

Dieser Code kann der Datei functions.php Ihres Themes hinzugefügt werden oder Sie können ihn als Teil Ihres benutzerdefinierten WordPress-Plugins verwenden. Es ist wichtig, immer daran zu denken, dass Sie bei Verwendung der Funktion wp_redirect NIE vergessen sollten, den Exit hinzuzufügen, da diese Funktion nicht automatisch beendet wird.

Als WordPress-Plugin-Entwickler können Sie auch ein anderes WordPress-Umleitungs-Plugin wp_safe_redirect() in Betracht ziehen, das eine bessere Möglichkeit der Umleitung bietet, da es prüft, ob der $location-Parameterhost zulässig ist.

Ähnliche Artikel