Cum elimin fișierul CSS al temei părinte?
Tema mea părinte (Starkers) adaugă un fișier CSS pe care încerc să-l elimin (vreau să folosesc @import în loc, pentru a putea suprascrie stilurile mai ușor). Starkers are următorul cod în fișierul functions.php:
add_action( 'wp_enqueue_scripts', 'script_enqueuer' );
function script_enqueuer() {
// Înregistrează și încarcă scriptul site.js
wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
wp_enqueue_script( 'site' );
// Înregistrează și încarcă stilul screen.css
wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
wp_enqueue_style( 'screen' );
}
Am încercat următorul cod în functions.php al temei copil, dar tag-urile link și script încă apar în secțiunea head.
add_action('init', 'removeScripts');
function removeScripts() {
// Încearcă să elimine stilul screen
wp_dequeue_style('screen');
// Încearcă să dezînregistreze scriptul site
wp_deregister_script('site');
}
Am verificat de două ori să văd dacă sunt hard-codate în header-ul temei părinte și nu sunt.

Vreau să folosesc @import pentru a putea suprascrie stilurile mai ușor
Pur și simplu. Nu. Faceți. Asta.
Puteți pur și simplu să vă conectați la același hook și apoi să eliminați/deregistrați stilurile/scripturile și să adăugați cele personalizate.
function PREFIX_remove_scripts() {
wp_dequeue_style( 'screen' );
wp_deregister_style( 'screen' );
wp_dequeue_script( 'site' );
wp_deregister_script( 'site' );
// Acum înregistrați stilurile și scripturile dumneavoastră aici
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );
Motivul pentru eliminarea și deregistrarea scripturilor este simplu:
Rețineți că dacă doriți să puteți folosi oricare dintre aceste identificatori (
'screen'
sau'site'
) după ce le-ați eliminat, va trebui să le deregistrați și pe acestea. De exemplu:wp_deregister_style( 'screen' );
șiwp_deregister_script( 'site' );
- peterjmag

Iată cum poți elimina fișierul de stiluri al temei părinte și să-l înlocuiești cu cel al temei copil sau pur și simplu să elimini încărcarea fișierului de stiluri al temei părinte.
Fișierul functions.php al temei Starker:
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' );
}
Ține minte identificatorul (handle) folosit pentru stil, 'screen'
Înlocuirea fișierului de stiluri al temei părinte cu cel al temei copil
Fișierul functions.php al temei Starker-Child:
function custom_starkers_styles() {
//Elimină stilurile dorite din tema părinte
wp_dequeue_style( 'screen');
//Înlocuiește cu stilurile personalizate din tema copil
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 );
Eliminarea fișierului de stiluri al temei părinte
Fișierul functions.php al temei Starker-Child:
function remove_starkers_styles() {
//Elimină stilurile dorite din tema părinte
wp_dequeue_style( 'screen');
}
add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );
Am dat parametrului priority din add_action() al temei copil valoarea 20 (implicit este 10) pentru a ne asigura că acesta va rula DUPA ce tema părinte a încărcat stilurile. Cu cât prioritatea este mai mare, cu atât acțiunea va rula mai târziu. 20 > 10, deci acțiunea temei copil va rula întotdeauna după ce cea a temei părinte s-a executat deja.
