it-swarm.com.de

Wie lösche ich die CSS-Datei eines übergeordneten Themas?

Mein übergeordnetes Design (Starkers) fügt eine CSS-Datei hinzu, die ich entfernen möchte (ich möchte stattdessen @import verwenden, damit ich Stile leichter überschreiben kann). Starkers hat folgendes in seiner functions.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

Ich habe Folgendes in der child functions.php ausprobiert, aber die Link- und Script-Tags werden immer noch im head-Abschnitt angezeigt.

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

Ich habe zweimal überprüft, ob sie im übergeordneten Header fest codiert sind und nicht.

31
jmotes

Ich möchte stattdessen @import verwenden, um Stile leichter überschreiben zu können

Einfach. Nicht. Tun. Das.

Sie springen einfach in den gleichen Haken und heben dann die Registrierung/Löschung der Stile/Skripte auf und werfen Ihre benutzerdefinierten Stile ein.

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

Der Grund für das Löschen und Abmelden der Skripte ist einfach:

Beachten Sie, dass Sie die Registrierung auch aufheben müssen, wenn Sie einen dieser Punkte ('screen' oder 'site') verwenden möchten, nachdem Sie sie aus der Warteschlange entfernt haben. Zum Beispiel: wp_deregister_style( 'screen' ); und wp_deregister_script( 'site' ); - peterjmag

37
kaiser