Come reindirizzare l'utente se non ha effettuato l'accesso a WordPress » Reindirizzamento della pagina
Pubblicato: 2022-01-02Nell'ultimo post, ho dimostrato come verificare se l'utente ha effettuato l'accesso a WordPress. Un motivo comune per cui potresti voler controllare se l'utente di WordPress ha effettuato l'accesso è mostrare pagine diverse in base allo stato di accesso dell'utente di WordPress. Se vuoi reindirizzare gli utenti se non hai effettuato l'accesso a WordPress, puoi ottenerlo aggiungendo uno snippet di codice nel tuo file functions.php come vedrai in questo breve tutorial.
Perché reindirizzare gli utenti in WordPress?
Il reindirizzamento degli utenti è un requisito importante per la maggior parte dei siti WordPress. Ci sono diverse volte in cui potresti voler reindirizzare gli utenti da una pagina all'altra. Ad esempio, puoi reindirizzare gli utenti di WooCommerce dopo il checkout, oppure puoi reindirizzare l'utente dopo la registrazione o reindirizzare l'accesso al sito web.
Reindirizzare se non hai effettuato l'accesso a WordPress è uno dei reindirizzamenti più comuni. Sebbene ci siano plug-in che possono aiutare a gestire il reindirizzamento in WordPress, l'aggiunta di un piccolo snippet che risolve questo problema è una soluzione migliore rispetto a fare affidamento su un plug-in di terze parti.
In questo tutorial, dimostrerò come aggiungere uno snippet nel tuo tema o plug-in che crea il reindirizzamento per gli utenti che non hanno effettuato l'accesso a una pagina di tua scelta.
Passaggi per reindirizzare se non si è effettuato l'accesso a WordPress
Per implementare il reindirizzamento se non hai effettuato l'accesso a WordPress, dovresti seguire i seguenti passaggi:
- Accedi al tuo sito WordPress e vai all'editor del tema nel menu aspetto nel menu principale del dashboard.
- Apri il file functions.php del tema WordPress attivo. Puoi anche usare CPanel o FTP per accedere al file functions.php del tema attivo. Si trova su questo sentiero –
installazione-wp-root/wp-content/themes/active-theme/functions.php - Crea un hook di azione che si aggancia all'hook di inizializzazione dell'amministratore –
admin_init
, ad esempioadd_action('init', 'redirect_if_not_logged_in')
. Questo hook ha una funzione di callback che avrà la logica per verificare se l'utente è loggato in WordPress e se non loggato viene reindirizzato alla pagina che desideriamo. - Crea la funzione di callback come accennato in precedenza e aggiungi il codice di conseguenza.
- Salva le modifiche e vai al frontend per verificare se gli utenti che non hanno effettuato l'accesso vengono reindirizzati alla pagina che hai aggiunto nel codice.
Dimostriamo come aggiungere il reindirizzamento se l'utente non ha effettuato l'accesso a WordPress. Utilizzerò il tema WordPress predefinito nell'installazione di localhost, ma può funzionare per tutti gli altri siti, indipendentemente dal tema e dall'ambiente di hosting.
Il codice per aggiungere il reindirizzamento può anche richiedere un'altra condizione, come nella maggior parte dei casi quando si desidera limitare il contenuto da utenti non registrati, è necessario verificare due condizioni:
- Se l'utente ha effettuato l'accesso
- Se l'utente si trova nella pagina in cui hai il contenuto limitato
Quando queste condizioni sono soddisfatte, dovresti usare la funzione wp_redirect() per reindirizzare l'utente alla pagina di tua scelta.
Funzione WP: wp_redirect()
Questa è una funzione di reindirizzamento di WordPress che può essere utilizzata in temi e plug-in per reindirizzare gli utenti. L'espressione generale di questa funzione è la seguente:
wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )
Come puoi vedere la funzione ha tre parametri che sono i seguenti:
Parametro | Descrizione |
$location | Questo è l'URL a cui vuoi reindirizzare l'utente. Quando utilizzi questa funzione quando l'utente non è loggato, devi fornire l'URL alla pagina che reindirizzeremo l'utente come vedrai nell'esempio di codice |
$status | Questo è un parametro facoltativo e potresti non vederlo utilizzato spesso, ma è il codice di stato della risposta HTTP da utilizzare. L'impostazione predefinita è "302" e puoi utilizzare 301 per un reindirizzamento permanente. Fai attenzione quando usi questo parametro con l'opzione di reindirizzamento 301. |
$x_redirect_by | Questa è semplicemente l'applicazione che applica il reindirizzamento e questo cambierà raramente il valore predefinito che è WordPress |
Azione di reindirizzamento del modello Se l'utente non ha effettuato l'accesso
Per reindirizzare l'utente che non è loggato in WordPress è ora possibile utilizzare la funzione wp_redirect con il controllo condizionale se l'utente è loggato come segue:
add_action('template_redirect', 'redirect_if_user_not_logged_in'); funzione redirect_if_user_not_logged_in() { if ( is_page('slug || ID') && ! is_user_logged_in() ) { //example può essere is_page(23) dove 23 è l'ID pagina wp_redirect( 'http://your-redirect-page-qui '); exit;// non dimenticare mai questa uscita poiché è molto importante che wp_redirect() abbia l'uscita / die } }
Sostituisci lo slug del controllo condizionale con la tua rispettiva pagina e sostituisci anche l'URL di reindirizzamento nel codice sopra e aggiungilo a functions.php per reindirizzare gli utenti che non hanno effettuato l'accesso all'URL di quella pagina.
Azione di reindirizzamento init amministratore se l'utente non ha effettuato l'accesso
In alternativa, puoi agganciare admin_init
invece di template_redirect
per reindirizzare l'utente se non ha effettuato l'accesso a WordPress.
Il codice dovrebbe essere lo stesso a parte il punto di aggiunta dell'action hook. Il codice dovrebbe essere il seguente:
add_action('admin_init', 'redirect_if_user_not_logged_in'); funzione redirect_if_user_not_logged_in() { if ( !is_user_logged_in() && is_page('slug') ) { wp_redirect( 'http://your-redirect-page-qui '); Uscita; } }
Quando aggiungiamo questo codice al tema WordPress predefinito functions.php e aggiungiamo lo slug per la pagina che vogliamo creare il reindirizzamento e l'URL per la destinazione, funziona perfettamente come puoi vedere:
Pensieri finali
Quando vuoi creare un reindirizzamento se l'utente non ha effettuato l'accesso a WordPress, devi prima verificare se l'utente ha effettuato l'accesso utilizzando il codice che ho condiviso in quel post, quindi utilizzare la funzione wp_redirect() per aggiungere la nuova destinazione in cui gli utenti dovrebbero essere reindirizzati se accedono a una determinata pagina o post.
Questo codice può essere aggiunto al file functions.php del tuo tema oppure puoi usarlo come parte del tuo plugin WordPress personalizzato. È importante ricordare sempre, quando si utilizza la funzione wp_redirect , non bisogna MAI dimenticare di aggiungere l'uscita poiché questa funzione non esce automaticamente.
Come sviluppatore di plugin per WordPress, puoi anche prendere in considerazione un altro plugin di reindirizzamento WordPress wp_safe_redirect() che fornisce un modo migliore per reindirizzare poiché controlla se l'host del parametro $location è consentito.
Articoli simili
- Come rimuovere o disabilitare le recensioni in WooCommerce
- Come verificare se il plug-in è attivo in WordPress [ 3 MODI ]
- Come creare un'area widget personalizzata in WordPress passo dopo passo
- Come nascondere un prodotto in WooCommerce o nascondere i prodotti per categoria o ruoli
- Come modificare il link Ritorna al negozio in Woocommerce
- Come creare ruoli utente personalizzati in WordPress
- Come ottenere il ruolo utente corrente in WordPress e visualizzare i ruoli
- Come correggere l'errore di tipo non rilevato: wp.template non è una funzione
- Guida completa all'utilizzo degli hook personalizzati di WordPress do_action e apply_filters con esempi
- Come reindirizzare gli utenti dopo un accesso riuscito in WordPress senza utilizzare un plug-in
- Disconnessione da WooCommerce senza conferma: come rimuovere "Sei sicuro di voler uscire?"
- Come reindirizzare al carrello dopo aver effettuato l'accesso a WooCommerce
- WooCommerce Logout PHP Snippet per creare il pulsante di logout
- Come creare un avviso di amministrazione di WooCommerce per il plug-in - Sviluppo WooCommerce
- Come rimuovere è stato aggiunto al carrello Messaggio WooCommerce
- Come aggiungere testo dopo il prezzo in WooCommerce » Aggiungi suffisso prezzo
- Come modificare il testo Procedi al pagamento in WooCommerce