Evite carregar estilos de WP padrão na tela de login

5

Existe alguma maneira de evitar o carregamento de estilos padrão do WordPress na tela de login para carregar somente minhas folhas de estilo personalizadas?

Na verdade, estou usando este código:

function login_styles() {
    // Sets the styles if is the current theme
    if (get_stylesheet_directory() == get_template_directory()) {
        // Prints link to stylesheed login.css
        wp_register_style(...);
        wp_enqueue_style(...);
    }
}
add_action( 'login_enqueue_scripts', 'login_styles' );

Funciona bem, mas o WordPress primeiro carrega seus estilos. Quero excluir esses arquivos dessa tela.

    
por AlbertoFdzM 09.09.2013 / 16:37

3 respostas

5

O uso de wp_deregister_style( 'login' ) para remover os estilos de login ainda resultará em uma solicitação de 404 para o arquivo CSS de login. No entanto, se você registrar novamente o estilo de login após cancelar o registro, poderá evitar a solicitação indesejada.

add_action( 'login_init', function() {
    wp_deregister_style( 'login' );
    wp_register_style( 'login' );
} );

Isso deixará você com uma página wp-login.php completamente sem estilo. Para realinhá-lo, você poderia registrar seu próprio arquivo CSS sob o login handle.

Isso pode ser mais útil do que mexer no filtro style_loader_tag .

Atualização:

login_enqueue_scripts é uma ação mais apropriada e a remoção de fila não resulta em um 404.

add_action( 'login_enqueue_scripts', function() {
    wp_dequeue_style( 'login' );
} );
    
por Spencer 15.11.2014 / 05:49
1

Seguindo o exemplo de um G.M. comentar em uma resposta excluída, onde ele aponta que os estilos de login são impressos com wp_admin_css() * , eu encontrei um filtro que faz o trabalho,% código%. Mas testes adicionais mostram que style_loader_tag é suficiente .

Feedback e mais testes revelam que cancelar o registro do estilo produz um erro 404 para wp_deregister_style , então, de volta para a tag loader:

add_action( 'login_init', function() 
{
    # Produces a 404 for the style
    // wp_deregister_style( 'wp-admin' );

    # The following is a filter in /wp-includes/class.wp-styles.php
    # Completely cleans up the <head> of enqueues
    add_filter( 'style_loader_tag', '__return_null' );
});

wp-admin.css Existe até um filtro dentro desta função, mas parece que ela não captura estilos registrados.

    
por brasofilo 10.09.2013 / 00:29
0

Encontrou o caminho para remover os estilos da tela de login:

function login_styles_reset( $style ) {
    if ( strpos( $style, 'wp-admin-css') !== FALSE ) {
        $style = NULL;
    } elseif ( strpos( $style, 'colors-fresh-css') !== FALSE ) {
        $style = NULL;
    }
    return $style;
}

function custom_login_styles() {
    add_filter( 'style_loader_tag', 'login_styles_reset' );

    // Code for the new login styles
}
add_action( 'login_init', 'custom_login_styles');

Espero que ajude alguém.

    
por AlbertoFdzM 03.12.2013 / 16:06