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.
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.
Eu tentei fazer isso mas não me está a dar
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.
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’ );
//complemento a sua resposta
ID == 346) { ?>
https://wordpress.stackexchange.com/questions/138473/if-is-pagepage-id-not-working
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.
Cara, seu post me ajudou, vim aqui agradecer!
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
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’ );
Muito obrigada, era exatamente isso que eu precisava.