web-dev-qa-db-fra.com

Eviter de charger par défaut WP styles dans l'écran de connexion

Existe-t-il un moyen d'éviter le chargement de styles WordPress par défaut dans l'écran de connexion pour ne charger que mes feuilles de style personnalisées?

En fait, j'utilise ce code:

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' );

Cela fonctionne bien, mais WordPress charge d’abord ses styles. Je veux exclure ces fichiers de cet écran.

5
AlbertoFdzM

L'utilisation de wp_deregister_style( 'login' ) pour supprimer les styles de connexion entraînera toujours une demande 404 du fichier CSS de connexion. Toutefois, si vous réenregistrez le style de connexion après le désenregistrement, vous pouvez empêcher la demande non souhaitée.

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

Cela vous laissera avec une page wp-login.php complètement déshabillée. Pour le remodeler, vous pouvez plutôt enregistrer votre propre fichier CSS sous le handle login.

Cela pourrait être plus utile que de jouer avec le filtre style_loader_tag.


Mettre à jour:

login_enqueue_scripts est une action plus appropriée et la suppression de la file d'attente n'entraîne pas un 404.

add_action( 'login_enqueue_scripts', function() {
    wp_dequeue_style( 'login' );
} );
5
Spencer

Suivant l’avance d’un G.M. commenter dans une réponse supprimée, où il souligne que les styles de connexion sont imprimés avec wp_admin_css() *, J'ai trouvé un filtre qui fait le travail, style_loader_tagMais d'autres tests montrent que wp_deregister_style est suffisant.

Les commentaires et les tests ultérieurs révèlent que l'annulation de l'enregistrement du style produit un code 404 pour wp-admin.css, donc revenons à la balise 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' );
});

*Il existe même un filtre à l'intérieur de cette fonction, mais il semble qu'elle ne capture pas les styles enregistrés.

1
brasofilo

Trouver le moyen de supprimer les styles de l'écran de connexion:

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');

J'espère que ça aide quelqu'un d'autre.

0
AlbertoFdzM