4
respostas

Wordpress - Plugin de Login

Olá, depois de ver o curso sobre criação de temas do Wordpress(muito bom por sinal), comecei a criar um plugin onde o mesmo modifica a página de login (wp-login) do mesmo.

Pois bem, o arquivo que o WP carrega nessa página é o wp-login.php localizado na pasta raíz dele. Gostaria de saber como eu posso "redirecionar" a leitura desse arquivo para outro, localizado na pasta do meu plugin. Tentei como no exemplo:

function dftAdmin_login() {
    global $pagenow;

    if ( $pagenow != 'wp-login.php' ) {
        return;
    }

    include('login.php');
}
add_action( 'login_enqueue_scripts', 'dftAdmin_login' );

Acho que ficou claro o que quero dizer, basicamente irei copiar o conteúdo do wp-login original para outro arquivo e mudar a estrutura do mesmo para que quando eu ative o plugin, todo ele já se monte automaticamente.

Obrigado!

4 respostas

Fala Marcos,

Tranquilo?

Acho que entendi o que você quer, mas não tenho certeza se é possível, você já leu a documentação do WordPress?

LINK

Espero ter ajudado!

Abraços!

Ah,

Um detalhe, segundo a documentação o login_enqueue_scripts vai adicionar apenas scripts, JS ou CSS... olhando em outros fóruns vi essa ação login_init acho que ela é a que você procura, segue um exemplo:


add_action( 'login_init', 'dftAdmin_login' );

function dftAdmin_login() {
    ...
}

Espero ter ajudado!

Abraços!

Boa noite Luiz Fernando, obrigado pela resposta. Sim eu li a documentação mas infelizmente nela apenas cita como incrementar styles na tela, o que já consegui fazer funcionar.

O problema é que além de styles quero poder adicionar elementos HTML nessa página, que são adicionados lá na hora que eu ativar o plugin, por exemplo, quero colocar uma div adicional embaixo do form de login.

Não seria possível fazer um tipo de redirecionamento para um arquivo da pasta do meu plugin? (mesmo acreditando que isso possa gerar conflitos de diretório), com o mesmo conteúdo do wp-login.php só que com os elementos que quero adicionar.

Obrigado.

Bom, acabei achando outra solução, não sei se é uma boa prática mas adicionei o html direto pelo meu plugin mesmo, inserindo-o na página:

function dftAdmin_layout_login_head() {
    global $pagenow;

    if ( $pagenow == 'wp-login.php' ): ?>

        <div id="lateral-cliente-container">
            <div> Outra div </div>
        </div>

    <?php endif;
}
add_action( 'login_head', 'dftAdmin_layout_login_head' );

Assim ele coloca minha div dentro do body do login, assim dando pra fazer bastante coisa pelo CSS, acho que não é o ideal mas quebra um galho, fica a dica pra quem quiser fazer!