web-dev-qa-db-fra.com

Supprimer les styles css d'une page spécifique

Je dois supprimer tous les thèmes (enfant et parent) css d'une page singulière à l'aide de functions.php dans un thème enfant. Voici ce que je suis en train d'ajouter aux fonctions de l'enfant.php

// import parent and child theme css
function theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array($parent_style));}

// remove the parent & style css
function PREFIX_remove_scripts() {
wp_dequeue_style( 'parent-style' );
wp_dequeue_style( 'child-style' );
wp_dequeue_style( 'parent-style-css' );
wp_deregister_style( 'parent-style' );
wp_deregister_style( 'child-style' );
wp_deregister_style( 'parent-style-css' );

Je souhaite appliquer cette fonction PREFIX_remove_scripts à une seule page du site. Comment puis-je le mieux accomplir cela? Ou existe-t-il un autre moyen approprié? Merci d'avance!

2
Ben Wright

Vous pouvez utiliser balises conditionnelles pour cibler la page sur laquelle vous souhaitez supprimer les styles. Vous pouvez utiliser is_page() pour cibler un page page (par opposition à un autre type de message) et transmettre un ID de page, un slug, un titre ou aucun argument à target any page.

function wpse_217881_remove_scripts() {

    // Check for the page you want to target
    if ( is_page( 'About Me And Joe' ) ) {

        // Remove Styles
        wp_dequeue_style( 'parent-style' );
        wp_dequeue_style( 'child-style' );
        wp_dequeue_style( 'parent-style-css' );
        wp_deregister_style( 'parent-style' );
        wp_deregister_style( 'child-style' );
        wp_deregister_style( 'parent-style-css' );
    }
}

Je suppose que vous l’êtes déjà, mais pour être explicite, vous devriez appeler la fonction qui supprime/désenregistre les styles d’un crochet d’action - dans cet exemple wp_enqueue_scripts.

À partir du wp_enqueue_scripts docs :

Malgré son nom, il est utilisé pour mettre en file d'attente les scripts et les styles

add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts' );

// Optionaly add a priority if needed i.e:
// add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts', 20 );
4
Cai