Wie entferne ich die CSS-Datei eines übergeordneten Themas?

Mein übergeordnetes Thema (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 seinen functionen.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 versucht, aber die Link- und Script-Tags erscheinen immer noch im Kopfbereich.

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

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

Solutions Collecting From Web of "Wie entferne ich die CSS-Datei eines übergeordneten Themas?"

Ich möchte stattdessen @import verwenden, damit ich Stile leichter überschreiben kann

Einfach. Nicht. Machen. Das.

Sie springen einfach in den gleichen Hook und entfernen dann die Styles / Scripts und entfernen Ihre eigenen.

 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 Entfernen und Aufheben der Registrierung der Skripts ist einfach:

Beachten Sie, dass Sie die Registrierung auch aufheben müssen, wenn Sie nach der Aufhebung der Warteschlangen eine dieser Handles ( 'screen' oder 'site' ) verwenden möchten. Zum Beispiel: wp_deregister_style( 'screen' ); und wp_deregister_script( 'site' );Peterjmag

So würden Sie entweder das Stylesheet des übergeordneten Themas entfernen und es durch das Stylesheet eines untergeordneten Themas ersetzen ODER einfach das Stylesheet des übergeordneten Themes entfernen, das jemals geladen wurde.

Starker Theme’s functions.php:

 add_action( 'wp_enqueue_scripts', 'script_enqueuer' ); function script_enqueuer() { //... wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' ); wp_enqueue_style( 'screen' ); } 

Erinnere dich an das Handle, das sie den Stil “Bildschirm” nennen

Ersetzen von übergeordneten Designs durch das Stylesheet des untergeordneten Designs

Starker-Child-Thema functionen.php:

 function​ ​custom_starkers_styles() { //Remove desired parent styles wp_dequeue_style( 'screen'); //Replace with custom child styles wp_register_style( 'screen-child',​ ​trailingslashit( get_template_directory_uri() ). 'screen.css' ); wp_enqueue_style( 'screen-child​'​); } add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 ); 

Entfernen Sie das Stylesheet des übergeordneten Themas

Starker-Child-Thema functionen.php:

 function​ ​remove_starkers_styles() { //Remove desired parent styles wp_dequeue_style( 'screen'); } add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 ); 

Wir geben der add_action () des untergeordneten Themas eine Priorität von 20 (der Standardwert ist 10), weil wir möchten, dass sie NACH dem übergeordneten Thema in der Warteschlange ausgeführt wird. Je höher die Priorität, desto später wird es laufen. 20> 10, so dass die Aktion des untergeordneten Themas immer ausgeführt wird, nachdem das übergeordnete Thema bereits ausgeführt wurde.