Forçando a tela de login para site WordPress

Muitas vezes temos a necessidade de não deixar o nosso site aberto para todos os usuários e forçando a tela de login para site WordPress pode ser uma solução simples até o site ser finalizado. Assim evitando o acesso indevido de outros usuários. Existem plugins que realizam essa tarefa, mas uma solução simples pode resolver esse problema.

Forçando a tela de login para site WordPress
Forçando a tela de login para site WordPress

Como adicionar código no WordPress?

Primeiramente, se iremos realizar uma alteração em produção precisamos realizar um backup da nossa aplicação. Especialmente se você não está familiarizado com código.

A opção mais simples é alterando o código do functions.php esse processo é válido quando você possui um tema que não tem atualizações constantes. Caso contrário um tema filho ou um plugin será a melhor opção, porque as suas alterações não serão afetadas caso o tema principal seja atualizado.

Adicionando algumas linhas no arquivo functions.php do seu tema como podemos ver no blog abaixo:

function verifica_login()
{
	if( ! is_user_logged_in() )
	wp_redirect( get_bloginfo('siteurl').'/wp-login.php' );
}

add_action( 'get_header', 'verifica_login' );
Code language: JavaScript (javascript)

O código acima efetua o seguinte tratamento, adiciona uma ação extra a função get_header ou hook(gancho) conhecido por alguns desenvolvedores. Toda vez que a função get_header for chamada o WordPress irá chamar a função verifica_login.

Na função verifica_login temos seguinte tratamento, verifica se o usuário tá logado com a condicional tag is_user_logged_in() se não estiver logado ele redireciona para a tela de login, assim forçando a tela de login para site WordPress para usuários não logados.

Com a função do WordPress wp_redirect() passamos como parâmetro o endereço a qual redirecionaremos o usuário no caso montamos um URL usando a função get_bloginfo('siteurl') concatenando com /wp-login.php.

Se o post forçando a tela de login para site WordPress foi útil para você, confira mais conteúdo relacionado a desenvolvimento WordPress.


Publicado

em

,

por

Comentários

9 respostas para “Forçando a tela de login para site WordPress”

  1. Avatar de ricardo01010
    ricardo01010

    Eu tentei fazer isso mas não me está a dar

    1. Avatar de Fellyph

      Olá Ricardo, essa técnica bloqueia todo o acesso. O ideal para bloquear ambientes de teste. Bloquear uma página específica o ideal é usar um plugin de área restrita que dá um controle maior.

      1. Avatar de ricardo01010

        Olá Fellyph, obrigado pela sua opinião eu consegui através de uns contactos encontrar uma solução a partir da sua, fazendo o que pretendo.

        function verifica_login() {
        if ( is_page (xx) ) { } else {
        if( ! is_user_logged_in() ) {
        wp_redirect( get_bloginfo(‘siteurl’).’/wp-login.php’ );
        }
        }
        }

        add_action( ‘get_header’, ‘verifica_login’ );

  2. Avatar de ricardo01010
    ricardo01010

    Eu gostaria de saber como posso deixar que aceda a outra página sem estar bloqueada, ou seja eu tenho na área de login um botão registar que vai para a página registar e quero saber como posso que deixe aceder a essa página sem estar logado.

  3. Avatar de Anderson SSilva

    Cara, seu post me ajudou, vim aqui agradecer!

  4. Avatar de heverton pablo

    Alguém aqui sabe onde fica a classe responsavel pelo login do wordpress pra eu fazer uma alteração pra checar uma nova tabela antes de logar? quero fazer 3 verificações

  5. Avatar de François Júnior
    François Júnior

    Bom dia.

    Gostaria de compartilhar uma solução baseada na sua. Com esse código o usuário será direcionado para a tela de login, caso não esteja logado, e após o login será redirecionado para a página que tentou acessar:

    function verifica_login() {
    if (is_page(‘area_interna’)) {
    if (!is_user_logged_in()) {
    auth_redirect();
    }
    }
    }

    add_action( ‘get_header’, ‘verifica_login’ );

  6. Avatar de Bruna
    Bruna

    Muito obrigada, era exatamente isso que eu precisava.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *