Nesse tutorial vou mostrar duas formas de redirecionar os usuários ao fazerem login no WordPress. Essa foi uma dúvida que apareceu no grupo WordPress Brasil do Telegram e eu já havia aplicado em um projeto onde criei uma área restrita para condôminos, com isso, para a melhor experiência do usuário é que ele seja redirecionado para a página que deseja visualizar ao logar no WordPress.
Primeiro método
Essa é a forma mais genérica, mas que pode atender a necessidade de muitos projetos. Ele redireciona todo e qualquer usuário para uma página específica. Adicione o código abaixo no seu arquivo functions.php
<?php
function custom_login_redirect( $redirect_to, $request, $user ) {
// Redireciona para uma página específica
return home_url( 'sua-pagina-aqui' );
}
add_filter( 'login_redirect', 'custom_login_redirect', 10, 3 );
O código acima cria uma função chamada custom_login_redirect() e a adiciona no hook login_redirect
Segundo método
Essa forma é um pouco mais complexa por fazer verificação das capabilities do usuário para redirecioná-lo ao local específico, aqui no exemplo estamos apenas verificando se o usuário é um administrador e o redireciona para o painel administrativo, e os demais usuários serão redirecionados para sua página específica.
<?php
function custom_login_redirect( $redirect_to, $request, $user ) {
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
// Verifica se o usuário é um administrador
if ( in_array( 'administrator', $user->roles ) ) {
// Redireciona para o local padrão, o painel administrativo
return $redirect_to;
} else {
// Redireciona para uma página específica
return home_url( 'sua-pagina-aqui' );
}
} else {
return $redirect_to;
}
}
add_filter( 'login_redirect', 'custom_login_redirect', 10, 3 );
Bônus
Como bônus, segue mais uma função que verifica o usuário ao fazer logout e também o redireciona para a home ou uma página específica.
<?php
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
add_action( 'wp_logout', 'custom_logout_redirect' );
Referências
Hook login_redirect – https://developer.wordpress.org/reference/hooks/login_redirect/
Roles e Capabilities – https://wordpress.org/support/article/roles-and-capabilities/
Função home_url() – https://codex.wordpress.org/Function_Reference/home_url/
Hook wp_logout – https://developer.wordpress.org/reference/functions/wp_logout/