Come reindirizzare gli utenti in WordPress
Pubblicato: 2018-08-08I reindirizzamenti sono una parte standard di siti Web, plug-in e temi. Alcuni stanno accadendo proprio davanti agli occhi e potresti non essere nemmeno consapevole di cosa sta succedendo dietro.
Sebbene i reindirizzamenti vengano solitamente lasciati agli sviluppatori, ti mostreremo diversi suggerimenti che ti permetteranno di svolgere questo compito da solo.
Come reindirizzare ruoli utente specifici dopo l'accesso riuscito
In questa parte dell'articolo, ti mostreremo un codice che puoi facilmente modificare e controllare dove atterra un determinato utente dopo aver effettuato l' accesso al tuo sito Web basato su WordPress.
Per impostazione predefinita, WordPress porterà tutti gli utenti alla dashboard e questo potrebbe essere un problema per alcuni di voi. Forse vuoi mantenere i tuoi amministratori e autori nel backend mentre vuoi condurre gli altri tuoi utenti direttamente alla tua home page o forse su un'altra pagina di frontend che hai creato appositamente per loro.
Per reindirizzare gli utenti in base ai loro ruoli, segui i passaggi seguenti:
- Apri il file functions.php
- Copia e incolla il seguente codice:
function my_login_redirect( $url, $request, $utente ){ if( $utente && è_oggetto( $utente ) && è_a( $utente, 'WP_User' ) ) { if( $user->has_cap( 'amministratore') o $user->has_cap( 'autore')) { $url = admin_url(); } altro { $url = home_url('/custom-page /'); } } restituisce $url; } add_filter('login_redirect', 'my_login_redirect', 10, 3 );
- Salvare le modifiche
Il codice mostrato sopra lascerà gli amministratori proprio dove devono essere: il pannello di amministrazione, mentre tutti gli altri utenti verranno indirizzati a una pagina personalizzata.
Puoi facilmente cambiare gli URL cambiando la variabile $url sulla 4a e la 6a riga e quindi indirizza i tuoi utenti a qualsiasi post/pagina che hai creato per loro.
Se vuoi controllare i ruoli utente, puoi farlo facilmente sulla terza riga del codice. Nell'esempio sopra riportato, abbiamo lasciato gli amministratori e gli autori nel pannello di amministrazione. Se vuoi solo gli amministratori lì, rimuovi semplicemente gli autori dall'immagine:
if( $user->has_cap( 'amministratore' ) ) {
Invece di rimuovere gli autori, puoi aggiungere anche altri ruoli; sta a te decidere chi finirà su quale pagina.
Questo è tutto. Con questo codice, non è necessario alcun plug-in per controllare i reindirizzamenti dopo l'accesso di un utente. Se non hai ancora intenzione di modificare il codice, vedi come reindirizzare gli utenti dopo l'accesso con un plug-in.
Reindirizza gli utenti dopo l'accesso con il plug-in di reindirizzamento dell'accesso di Peter
Sebbene tu possa reindirizzare rapidamente gli utenti dopo l'accesso inserendo del codice che ti abbiamo mostrato in precedenza, questa non è l'opzione migliore per coloro che non amano la codifica. Inoltre, se vuoi avere un maggiore controllo sui reindirizzamenti, dovrai sapere come modificare il codice.
Invece di modificare il codice, ti mostreremo un plugin che farà il lavoro sporco per te . Tutto quello che devi fare è decidere quale utente va dove, fare clic su alcune caselle di controllo e incollare gli URL mentre il plug-in si occuperà del resto.
Sebbene ci siano innumerevoli plugin WordPress progettati per fare lo stesso, abbiamo scelto il reindirizzamento degli accessi di Peter per questa parte dell'articolo.
Questo plug-in ti consentirà di scegliere gli utenti in base ai loro nomi, ruoli utente e persino capacità utente e semplicemente incollare l'URL a cui gli utenti verranno reindirizzati dopo l'accesso. È anche possibile scegliere un'altra pagina se si desidera reindirizzare quell'utente o gruppo di utenti dopo il logout. Inoltre, puoi scegliere un URL separato che verrà utilizzato come pagina di destinazione per qualsiasi utente al momento della registrazione.
Se questo non è abbastanza per te e desideri migliorare ulteriormente i tuoi reindirizzamenti, Peter's Login Redirect ti copre. Se hai, ad esempio, creato una pagina specifica per ogni utente, puoi generare l'URL direttamente dal plugin. In tal caso, un semplice shortcode descritto nel plugin sarà sufficiente per inserire il nome utente dell'utente e quindi condurre quel particolare utente alla sua pagina specifica.
Alla fine, ci sono poche opzioni di plugin da trovare che possono aiutarti a controllare ulteriormente il comportamento del plugin. È possibile impostare il plug-in per utilizzare un solo tipo di URL e, ad esempio, consentire l'utilizzo solo di collegamenti interni, controllare i reindirizzamenti POST e GET, utilizzare un file di reindirizzamento esterno se necessario e scegliere chi può controllare questo plug-in scegliendo i livelli di autorizzazione .
Se hai bisogno di gestire i reindirizzamenti di accesso, logout e registrazione, Peter's Login Redirect ti fornirà praticamente tutto ciò di cui hai bisogno. Oh, sì, abbiamo detto che il plugin è gratuito? Puoi ottenerlo dal repository dei plugin di WordPress e installarlo in pochi secondi, dopodiché tutto ciò che devi fare è accedere a Impostazioni -> Reindirizzamenti di accesso/disconnessione .
Come reindirizzare un utente WordPress dopo il logout
Per impostazione predefinita, quando un utente si disconnette da un sito Web WordPress, verrà riportato alla pagina di accesso. Verrà mostrato un messaggio che informa un utente dell'avvenuta disconnessione e il resto della navigazione è lasciato agli utenti.
Ma cosa succede se vuoi che i tuoi utenti vengano reindirizzati automaticamente alla tua home page, alle pagine di discussione che vuoi che vedano o a qualsiasi altra pagina di interesse? Forse vuoi creare una pagina di logout diversa che conterrà widget speciali o condurrà i tuoi utenti da qualche altra parte? Se è così, avrai bisogno di questo piccolo codice per far sì che tutto accada.
Nelle prossime righe, stiamo per mostrarti come reindirizzare facilmente un utente a qualsiasi URL tu voglia. Se non vuoi usare il codice per i reindirizzamenti, stiamo per mostrarti un semplice plugin che farà tutto questo per te. Ma prima, reindirizziamo un utente alla home page:
- Apri il file functions.php
- Copia e incolla il seguente codice:
add_action('wp_logout','auto_redirect_after_logout');
funzione auto_redirect_after_logout(){
wp_redirect( home_url() );
Uscita();
}
- Salvare le modifiche
- Esci e goditi la tua bellissima homepage
È così semplice. Come puoi intuire dal codice, puoi reindirizzare un utente a qualsiasi altro URL modificando la terza riga . Quindi, se vuoi portare i tuoi utenti a un'altra pagina del tuo sito o a qualsiasi pagina esterna, il tuo codice dovrebbe assomigliare a questo:
add_action('wp_logout','auto_redirect_after_logout');
funzione auto_redirect_after_logout(){
wp_redirect('http://www.firstsiteguide.com');
Uscita();
}
Se vuoi fare di più con la funzione wp_redirect, puoi saperne di più sulle pagine del Codex di WordPress.
Reindirizzamento login e logout
PREZZO: Gratuito
Questo plugin gratuito è relativamente semplice e farà perfettamente il suo lavoro. Invece di gestire il codice, Login e Logout Redirect creeranno un segmento aggiuntivo nella pagina delle impostazioni. Dopo averlo installato e attivato, devi andare su Impostazioni -> Generali e scorrere fino alla fine della pagina . Qui troverai caselle di input separate per i reindirizzamenti di login e logout. Inserisci gli URL desiderati, salva le modifiche e il gioco è fatto!
Se hai bisogno di più opzioni di reindirizzamento per il tuo sito Web WordPress, ti suggeriamo di controllare il plug-in di reindirizzamento 5sec che può aiutarti a reindirizzare qualsiasi articolo, pagina, categoria, tag o URL personalizzato. Ti consentirà di nascondere i tuoi URL, il che può essere un'ottima cosa per nascondere i link di affiliazione o qualsiasi URL dai tuoi visitatori. Il plug-in mostra anche le statistiche su ciascun collegamento reindirizzato in modo da sapere cosa sta succedendo sul sito.
Reindirizza gli utenti dopo aver lasciato un commento
Quando inizi a pubblicare articoli, vorrai che le persone li commentino, ovviamente. In questa parte della guida, stiamo per mostrarti come reindirizzare un utente dopo aver inviato un commento.
Questa funzione potrebbe tornare utile in situazioni specifiche. Ad esempio, potresti voler creare una pagina di ringraziamento personalizzata per un omaggio che stai organizzando . Quindi, quando i visitatori partecipano a un omaggio lasciando un commento, puoi facilmente reindirizzarli a quella pagina di "grazie" dove puoi fornire ulteriori informazioni sui premi.
In realtà ci sono tantissime ragioni diverse che potresti avere per reindirizzare un utente dopo aver lasciato un commento, quindi senza ulteriori indugi, ecco cosa devi fare per automatizzare il processo.
Reindirizza l'utente dopo aver inviato un commento:
- Apri il file functions.php
- Copia e incolla questo codice nel file:
funzione redirect_after_comment(){ wp_redirect('/grazie/'); Uscita(); } add_filter('comment_post_redirect', 'redirect_after_comment');
- Cambia il nome della pagina sulla 2a riga
- Salvare le modifiche
Questo è tutto. Ora puoi andare avanti e testare la funzione. Apri uno dei tuoi post e lascia un commento. Se hai fatto tutto correttamente, dovresti finire sulla pagina http://www.yoursite.com/thank-you o quella specificata nella seconda riga del tuo codice.
Non dimenticare di ringraziare le persone per i commenti, ma non dimenticare che desideri che i tuoi visitatori rimangano sul sito e continuino a navigare. Una buona idea potrebbe essere quella di aggiungere un elenco dei tuoi post recenti o più popolari, o forse anche meglio elencare tutti i post correlati che potrebbero interessare a un commentatore. Se hai una mailing list, questo è un buon posto per offrire un abbonamento ad essa.
Sebbene questa funzione offra un modo semplice e veloce per reindirizzare gli utenti dopo che hanno lasciato un commento, potresti essere interessato a un plug-in che ti dia alcune funzionalità aggiuntive.
Reindirizza gli utenti dopo la ricerca se è stato trovato un solo risultato
La funzionalità di ricerca è un must se hai a che fare con un numero maggiore di articoli. Se scrivi quotidianamente, immagina il numero di articoli sparsi in diverse categorie. Se pubblichi solo tre brevi articoli al giorno, dopo il primo anno ci saranno più di mille titoli diversi nel tuo database. Ora immagina di venire sul sito per la prima volta mentre cerchi qualcosa di specifico: vorrai cercarlo.
Per impostazione predefinita, WordPress cercherà tra i titoli dei post, i tag e, naturalmente, il contenuto. Quindi, se cerchi una parola o una frase specifica, probabilmente troverà decine di post e pagine che contengono la query. Ma cosa succede se ci fosse un solo risultato di ricerca?
Se qualcuno stava cercando una frase molto specifica o un'intera frase, è probabile che ci saranno solo pochi o forse solo un risultato. Se viene trovato un solo risultato, reindirizzare un utente alla pagina dei risultati di ricerca è del tutto inutile . Invece, perché non porteresti quell'utente direttamente al post/pagina trovato nel risultato?
Vediamo come farlo:
- Apri functions.php
- Copia questo codice e incollalo alla fine del file:
add_action('template_redirect', 'redirect_search_result); funzione redirect_search_result() { if (is_search()) { globale $wp_query; if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); Uscita; } } }
- Salvare le modifiche
Hai preparato il tuo WordPress per la nuova funzionalità. Dopo aver salvato le modifiche, ogni volta che un utente cerca qualcosa che restituirà un solo risultato, quell'utente verrà reindirizzato direttamente al post/pagina.
Anche se non sembra molto, siamo sicuri che ai tuoi visitatori piacerai per aver salvato loro un clic di un pulsante. Salvare un clic qui e un clic là si tradurrà in una migliore esperienza utente e probabilmente è qualcosa che desideri sul tuo sito web, non è vero?
Reindirizza gli utenti quando è stato trovato un solo post in una categoria
Invece di aprire una categoria o una pagina di tag che contiene un solo risultato, puoi reindirizzare quell'utente direttamente al post/pagina. Come per la maggior parte dei nostri frammenti di codice, sarà sufficiente copiare e incollare il codice:
Reindirizza un utente se c'era un solo post in una categoria o un tag:
- Apri il file functions.php
- Copia e incolla il seguente codice:
funzione redirect_to_post(){
globale $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect($post_url);
}
} add_action('template_redirect', 'redirect_to_post');
- Salvare le modifiche
Dopo aver terminato con il codice e aver salvato le modifiche, puoi testare la funzionalità aprendo una categoria o una pagina di tag che contiene solo un articolo/pagina al suo interno. Invece di aprire una pagina in cui viene mostrato solo quel post/pagina, verrai reindirizzato direttamente al post . Fantastico, vero?
Poiché alcuni utenti potrebbero essere confusi da ciò, sarebbe una buona idea includere un messaggio personalizzato che dirà agli utenti che è stato trovato un solo risultato e che si è verificato il reindirizzamento. Se vuoi farlo, puoi lasciare il messaggio in cima al post/pagina a cui un utente è stato reindirizzato inserendo una semplice dichiarazione "echo". In tal caso, il tuo codice sarebbe simile a questo:
funzione redirect_to_post(){ globale $wp_query; if( is_archive() && $wp_query->post_count == 1 ){ the_post(); $post_url = get_permalink(); wp_redirect($post_url); } echo "Poiché è stato trovato un solo risultato, sei stato reindirizzato a questo articolo/pagina!"; } add_action('template_redirect', 'redirect_to_post');
Ora che anche un messaggio è stato implementato, hai finito e non dovrai occuparti di quelle categorie e tag che contengono solo un post/pagina. Ma non lasciare che questa funzione sia una scusa per non scrivere nuovi articoli nella categoria.
Reindirizza gli utenti a una pagina casuale in WordPress
Questa potrebbe non essere una funzionalità standard di tutti i siti Web WordPress, ma sicuramente può essere uno strumento divertente da avere da qualche parte sul tuo sito. Se scrivi molto o forse hai numerose gallerie, puoi finire per avere migliaia di pagine che un utente medio non vedrà . Allora perché non rendere le cose un po' più interessanti reindirizzando un utente a un post casuale?
OK, non reindirizzerai un utente a un post casuale a sua insaputa o lo farai sulla home page, ovviamente. Ma puoi creare un semplice pulsante o collegamento su cui un utente può fare clic dopo di che verrà indirizzato a un'altra pagina del tuo sito. Forse è una galleria. Forse un bel editoriale che avevi scritto anni fa. Chi lo sa. Può essere divertente.
Iniziamo:
- Per prima cosa devi preparare il tuo link di reindirizzamento. Apri il tuo file functions.php
- Copia e incolla il seguente codice:
add_action('init','random_add_rewrite');
funzione random_add_rewrite() {
globale $wp;
$wp->add_query_var('random');
add_rewrite_rule('random/?
- Salvare le modifiche
- Vai su www.tuodominio.com/?random=1
, 'index.php?random=1', 'in alto'); } add_action('template_redirect','random_template'); function random_template() { if (get_query_var('random') == 1) { $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($post come $post) { $link = get_permalink($post); } wp_redirect($link,307); Uscita; } }
Dopodiché, sei pronto per creare il tuo link/pulsante. Tutto quello che devi fare è collegarti a http://www.yourdomain.com/?random=1 e ogni volta che un utente apre la pagina, verrà reindirizzato a una pagina casuale. Goditi la tua nuova funzionalità.
Reindirizzandoti alla conclusione
Prima o poi, vorrai reindirizzare utenti specifici in situazioni specifiche. Che ci sia una buona ragione per questo e che tu stia cercando di far acquistare qualcosa ai tuoi visitatori o che tu voglia semplicemente rendere il processo di accesso più comodo, questo tutorial ti aiuterà a gestire i reindirizzamenti.
Se sei abbastanza a tuo agio con la programmazione, sarai in grado di migliorarlo e reindirizzare gli utenti anche in diverse situazioni. In caso contrario, speriamo che questi esempi siano stati sufficienti per soddisfare le tue esigenze.