Cum să redirecționați utilizatorul dacă nu este autentificat în WordPress » Redirecționare pagină

Publicat: 2022-01-02

Cum să redirecționezi dacă nu te-ai autentificat WordPress În ultimul post, am demonstrat cum să verific dacă utilizatorul este autentificat în WordPress. Un motiv comun pentru care ați putea dori să verificați dacă utilizatorul WordPress este conectat este să afișați diferite pagini în funcție de starea de conectare a utilizatorului WordPress. Dacă doriți să redirecționați utilizatorii dacă nu sunt autentificati în WordPress, puteți realiza acest lucru adăugând un fragment de cod în fișierul functions.php, așa cum veți vedea în acest tutorial rapid.

De ce redirecționați utilizatorii în WordPress?

Redirecționarea utilizatorilor este o cerință importantă pentru majoritatea site-urilor WordPress. Există diferite momente în care doriți să redirecționați utilizatorii de la o pagină la alta. De exemplu, puteți redirecționa utilizatorii WooCommerce după finalizarea comenzii sau puteți redirecționa utilizatorul după înregistrare sau redirecționare autentificarea pe site.

A redirecționa dacă nu sunteți autentificat în WordPress este una dintre cele mai comune redirecționări. Deși există plugin-uri care pot ajuta la gestionarea redirecționării în WordPress, dar adăugarea unui mic fragment care rezolvă această problemă este o soluție mai bună decât a te baza pe un plugin terță parte.

În acest tutorial, voi demonstra cum să adăugați un fragment în tema sau pluginul dvs. care creează redirecționarea pentru utilizatorii care nu sunt conectați la o pagină la alegerea dvs.

Pași pentru redirecționare dacă nu sunteți conectat la WordPress

Pentru a implementa redirecționarea dacă nu sunteți autentificat în WordPress, ar trebui să urmați următorii pași:

  1. Conectați-vă la site-ul dvs. WordPress și navigați la editorul de teme din meniul aspect din meniul principal al tabloului de bord.
  2. Deschideți fișierul functions.php al temei active WordPress. De asemenea, puteți utiliza CPanel sau FTP pentru a accesa fișierul functions.php cu tema activă. Se află pe această cale - wp-root-installation/wp-content/themes/active-theme/functions.php
  3. Creați un cârlig de acțiune care se conectează la cârligul de inițializare adminadmin_init , de exemplu add_action('init', 'redirect_if_not_logged_in') . Acest hook are o funcție de apel invers care va avea logica să verifice dacă utilizatorul este autentificat în WordPress și dacă nu este autentificat este redirecționat către pagina pe care o dorim.
  4. Creați funcția de apel invers așa cum am menționat mai sus și adăugați codul în consecință.
  5. Salvați modificările și mergeți la interfață pentru a testa dacă utilizatorii care nu sunt autentificați sunt redirecționați către pagina pe care ați adăugat-o în cod.

Să demonstrăm cum puteți adăuga redirecționare dacă utilizatorul nu este autentificat în WordPress. Voi folosi tema WordPress implicită pe instalarea localhost, dar aceasta poate funcționa pentru toate celelalte site-uri, indiferent de temă și de mediul de găzduire.

Codul de adăugare a redirecționării poate avea, de asemenea, o altă condiție, cum ar fi, în majoritatea cazurilor, când doriți să restricționați conținutul de la utilizatorii neconectați, ați verifica două condiții:

  • Dacă utilizatorul este autentificat
  • Dacă utilizatorul se află pe pagina în care aveți conținutul restricționat

Când aceste condiții sunt îndeplinite, ar trebui să utilizați funcția wp_redirect() pentru a redirecționa utilizatorul către pagina pe care o alegeți.

Funcția WP: wp_redirect()

Aceasta este o funcție de redirecționare WordPress care poate fi folosită în teme și plugin pentru a redirecționa utilizatorii. Expresia generală a acestei funcții este următoarea:

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

După cum puteți vedea, funcția are trei parametri care sunt după cum urmează:

Parametru Descriere
$location Aceasta este adresa URL la care doriți să redirecționați utilizatorul. Când utilizați această funcție când utilizatorul nu este autentificat, trebuie să furnizați adresa URL către pagina pe care o vom redirecționa pe utilizator, așa cum veți vedea în exemplul de cod.
$status Acesta este un parametru opțional și este posibil să nu îl vedeți folosit des, dar este codul de stare a răspunsului HTTP de utilizat. „302” implicit și puteți utiliza 301 pentru o redirecționare permanentă. Fiți atenți când utilizați acest parametru cu opțiunea de redirecționare 301.
$x_redirect_by Aceasta este pur și simplu aplicația care aplică redirecționarea și aceasta va schimba rareori valoarea implicită care este WordPress

Acțiune de redirecționare a șablonului Dacă utilizatorul nu este autentificat

Pentru a redirecționa utilizatorul care nu este autentificat în WordPress, acum puteți utiliza funcția wp_redirect cu verificarea condiționată dacă utilizatorul este autentificat după cum urmează:

 add_action( 'template_redirect', 'redirect_if_user_not_logged_in');

funcția redirect_if_user_not_logged_in() {

	if ( is_page('slug || ID') && ! is_user_logged_in() ) { //exemplul poate fi is_page(23) unde 23 este ID-ul paginii

		wp_redirect( 'http://pagina-ta-redirectare-aici'); 
 
     ieșire;// nu uitați niciodată această ieșire, deoarece este foarte important ca wp_redirect() să aibă ieșirea / moartea
   
   }
   
}

Înlocuiți slug-ul verificării condiționate cu pagina respectivă și, de asemenea, înlocuiți URL-ul de redirecționare din codul de mai sus și adăugați-l la functions.php pentru a redirecționa utilizatorii care nu sunt conectați la adresa URL a paginii respective.

Acțiune de redirecționare inițială admin dacă utilizatorul nu este autentificat

Alternativ, puteți conecta admin_init în loc de template_redirect pentru a redirecționa utilizatorul dacă nu este autentificat în WordPress.

Codul ar trebui să fie același, în afară de punctul de adăugare a cârligului de acțiune. Codul ar trebui să fie după cum urmează:

 add_action( 'admin_init', 'redirect_if_user_not_logged_in');

funcția redirect_if_user_not_logged_in() {

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

      wp_redirect( 'http://pagina-ta-redirectare-aici'); 
   
   Ieșire;
   }
}

Când adăugăm acest cod la tema implicită WordPress functions.php și adăugăm slug-ul pentru pagina pe care dorim să creăm redirecționarea și URL-ul pentru destinație, funcționează perfect, după cum puteți vedea:

Cum să redirecționezi dacă nu te-ai autentificat WordPress

Gânduri finale

Când doriți să creați redirecționare dacă utilizatorul nu este autentificat în WordPress, trebuie să verificați mai întâi dacă utilizatorul este conectat folosind codul pe care l-am împărtășit în acea postare, apoi utilizați funcția wp_redirect() pentru a adăuga noua destinație în care utilizatorii ar trebui să fi redirecționați dacă accesează o anumită pagină sau postare.

Acest cod poate fi adăugat la fișierul functions.php al temei tale sau îl poți folosi ca parte a pluginului tău WordPress personalizat. Este important să vă amintiți întotdeauna că atunci când utilizați funcția wp_redirect , nu ar trebui să uitați NICIODATĂadăugați ieșirea, deoarece această funcție nu se iese automat.

În calitate de dezvoltator de plugin WordPress, puteți lua în considerare și un alt plugin de redirecționare WordPress wp_safe_redirect() care oferă o modalitate mai bună de redirecționare, deoarece verifică dacă gazda parametrului $location este permisă.

Articole similare