Come aggiungere un redirect dopo il login su WordPress
Se stai sviluppando un sito WordPress in cui è richiesto agli utenti di effettuare l’accesso, forse potresti aver bisogno di aggiungere un redirect per reindirizzarli in una pagina specifica anziché la dashboard di WordPress.
In questa guida vedremo come è possibile impostare un rendirizzamento dopo il login su WordPress senza l’utilizzo di plugin esterni.
Di default WordPress reindirizza tutti gli utenti che effettuano l’accesso su WordPress alla dashboard di amministrazione di WordPress.
Se preferisci puoi cambiare questo percorso mantenendo però il redirect di default per tutti gli amministratori del sito utilizzando la seguente funzione da aggiungere all’interno del file functions.php di un tema child di WordPress, oppure creando un nuovo plugin.
if (!function_exists('wip_login_redirect')) { function wip_login_redirect($redirect_to, $request, $user) { if ( isset($user->roles) && is_array($user->roles) ) { $userRole = array('administrator'); if ( array_intersect($userRole, $user->roles)) { return $redirect_to; } else { return home_url() . '/nuova-pagina'; } } else { return $redirect_to; } } add_filter('login_redirect', 'wip_login_redirect', 10, 3); }
Una volta aggiunta questa funzione vedrai che un utente amministratore verrà reindirizzato al backend di WordPress mentre se provi con un qualsiasi altro utente verrà riportato ad una pagina diversa.
Ovviamente devi sostituire nuova-pagina con lo slug di una pagina WordPress esistente.
Puoi anche impostare altri ruoli utenti esclusi da questo redirect andando ad inserirli all’interno dell’array $userRole, ad esempio
$userRole = array('administrator','editor');
Trovi la lista completa di tutti i ruoli utente nella seguente pagina.
Tieni comunque presente che alcuni plugin, come WooCommerce, ne aggiungono di nuovi, l’articolo riporta solamente quelli creati di default da WordPress
https://wordpress.org/support/article/roles-and-capabilities/
Conclusione
Ho cercato di rendere questa guida il più semplice possibile. Se hai dei problemi nell’utilizzare questa funzione lascia pure un commento, ti risponderò il prima possibile.