Como redirecionar o usuário se não estiver logado no WordPress » Redirecionamento de página

Publicados: 2022-01-02

Como redirecionar se não estiver logado no WordPress No último post, demonstrei como verificar se o usuário está logado no WordPress. Um motivo comum pelo qual você pode querer verificar se o usuário do WordPress está logado é mostrar páginas diferentes com base no status de login do usuário do WordPress. Se você deseja redirecionar os usuários se não estiverem logados no WordPress, você pode conseguir isso adicionando um trecho de código em seu arquivo functions.php como você verá neste tutorial rápido.

Por que redirecionar usuários no WordPress?

Redirecionar usuários é um requisito importante para a maioria dos sites WordPress. Há diferentes momentos em que você pode querer redirecionar os usuários de uma página para outra. Por exemplo, você pode redirecionar os usuários do WooCommerce após o checkout, ou pode redirecionar o usuário após o registro ou redirecionamento de login no site.

Redirecionar se não estiver logado no WordPress é um dos redirecionamentos mais comuns. Embora existam plugins que podem ajudar a gerenciar o redirecionamento no WordPress, adicionar um pequeno trecho que resolva esse problema é uma solução melhor do que confiar em um plugin de terceiros.

Neste tutorial, vou demonstrar como adicionar um trecho em seu tema ou plugin que cria o redirecionamento para usuários que não estão logados em uma página de sua escolha.

Etapas para redirecionar se não estiver logado no WordPress

Para implementar o redirecionamento se não estiver logado no WordPress, você deve seguir os seguintes passos:

  1. Faça login no seu site WordPress e navegue até o editor de temas no menu de aparência no menu principal do painel.
  2. Abra o arquivo functions.php do tema WordPress ativo. Você também pode usar o CPanel ou FTP para acessar o arquivo functions.php do tema ativo. Ele está localizado neste caminho - wp-root-installation/wp-content/themes/active-theme/functions.php
  3. Crie um gancho de ação que se enganche no gancho de inicialização do administradoradmin_init , por exemplo add_action('init', 'redirect_if_not_logged_in') . Este gancho possui uma função de callback que terá a lógica de verificar se o usuário está logado no WordPress e caso não esteja logado ele é redirecionado para a página que desejamos.
  4. Crie a função de retorno de chamada como mencionamos acima e adicione o código de acordo.
  5. Salve as alterações e acesse o frontend para testar se os usuários que não estão logados são redirecionados para a página que você adicionou no código.

Vamos demonstrar como você pode adicionar redirecionamento se o usuário não estiver logado no WordPress. Usarei o tema padrão do WordPress na instalação do host local, mas isso pode funcionar para todos os outros sites, independentemente do tema e do ambiente de hospedagem.

O código para adicionar redirecionamento também pode ter outra condição, como na maioria dos casos, quando você deseja restringir o conteúdo de usuários não logados, verifique duas condições:

  • Se o usuário estiver logado
  • Se o usuário estiver na página onde você tem o conteúdo restrito

Quando essas condições forem atendidas, você deve usar a função wp_redirect() para redirecionar o usuário para a página de sua escolha.

Função WP: wp_redirect()

Esta é uma função de redirecionamento do WordPress que pode ser usada em temas e plugins para redirecionar usuários. A expressão geral desta função é a seguinte:

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

Como você pode ver, a função tem três parâmetros que são os seguintes:

Parâmetro Descrição
$location Este é o URL para onde você deseja redirecionar o usuário. Quando você usa esta função quando o usuário não está logado, você precisa fornecer a URL para a página que redirecionaremos o usuário como você verá no exemplo de código
$status Este é um parâmetro opcional e você pode não vê-lo usado com frequência, mas é o código de status de resposta HTTP a ser usado. Padrão '302' e você pode usar 301 para um redirecionamento permanente. Tenha cuidado ao usar esse parâmetro com a opção de redirecionamento 301.
$x_redirect_by Este é simplesmente o aplicativo que aplica o redirecionamento e isso raramente altera o valor padrão que é o WordPress

Ação de redirecionamento de modelo se o usuário não estiver logado

Para redirecionar o usuário que não está logado no WordPress agora você pode usar a função wp_redirect com a verificação condicional se o usuário está logado da seguinte forma:

 add_action( 'template_redirect', 'redirect_if_user_not_logged_in');

function redirect_if_user_not_logged_in() {

	if ( is_page('slug || ID') && ! is_user_logged_in() ) { //exemplo pode ser is_page(23) onde 23 é o ID da página

		wp_redirect( 'http://sua-página-de-redirecionamento-aqui'); 
 
     exit;// nunca se esqueça desta saída pois é muito importante para o wp_redirect() ter a saída / morrer
   
   }
   
}

Substitua o slug da verificação condicional pela sua respectiva página e também substitua a URL de redirecionamento no código acima e adicione-a ao functions.php para redirecionar os usuários que não estão logados na URL dessa página.

Ação de redirecionamento de inicialização do administrador se o usuário não estiver conectado

Como alternativa, você pode conectar o admin_init em vez do template_redirect para redirecionar o usuário se não estiver logado no WordPress.

O código deve ser o mesmo, exceto pelo ponto de adicionar o gancho de ação. O código deve ser o seguinte:

 add_action( 'admin_init', 'redirect_if_user_not_logged_in');

function redirect_if_user_not_logged_in() {

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

      wp_redirect( 'http://sua-página-de-redirecionamento-aqui'); 
   
   saída;
   }
}

Quando adicionamos este código ao tema padrão do WordPress functions.php e adicionamos o slug para a página que queremos criar o redirecionamento e a URL para o destino, funciona perfeitamente como você pode ver:

Como redirecionar se não estiver logado no WordPress

Pensamentos finais

Quando você deseja criar um redirecionamento se o usuário não estiver logado no WordPress, primeiro você precisa verificar se o usuário está logado usando o código que compartilhei nesse post e, em seguida, use a função wp_redirect() para adicionar o novo destino onde os usuários devem ser redirecionado se acessar uma determinada página ou postagem.

Este código pode ser adicionado ao arquivo functions.php do seu tema ou você pode usá-lo como parte do seu plugin WordPress personalizado. É importante sempre lembrar que, ao usar a função wp_redirect , você NUNCA deve esquecer de adicionar a saída, pois essa função não sai automaticamente.

Como desenvolvedor de plug-ins do WordPress, você também pode considerar outro plug-in de redirecionamento do WordPress wp_safe_redirect() que fornece uma maneira melhor de redirecionamento, pois verifica se o host do parâmetro $location é permitido.

Artigos semelhantes