wake-up-neo.net

Entfernen Sie CSS-Stile von einer bestimmten Seite

Ich muss alle theme (sowohl child als auch parent) css-Stile von einer einzelnen Seite mit functions.php in einem child-Theme entfernen. Folgendes füge ich derzeit zur Datei functions.php des Kindes hinzu

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

Ich möchte diese PREFIX_remove_scripts - Funktion nur auf eine Seite der Site anwenden. Wie kann ich das am besten erreichen? Oder gibt es einen anderen geeigneten Weg? Vielen Dank im Voraus!

2
Ben Wright

Sie können bedingte Tags verwenden, um auf die bestimmte Seite abzuzielen, auf der Sie die Stile entfernen möchten. Sie können is_page() verwenden, um eine page page (im Gegensatz zu einem anderen Beitragstyp) als Ziel festzulegen und eine Seiten-ID, einen Slug, einen Titel oder kein Argument an any page zu übergeben.

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

Ich gehe davon aus, dass Sie es bereits sind, aber um genau zu sein, sollten Sie die Funktion aufrufen, mit der die Stile aus einem Aktions-Hook aus der Warteschlange entfernt/aus der Registrierung entfernt werden - in diesem Fall wp_enqueue_scripts.

Aus den wp_enqueue_scripts docs :

Trotz des Namens wird es zum Einreihen von Skripten und Stilen verwendet

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