Come rimuovere il file CSS del tema padre?
Il mio tema padre (Starkers) aggiunge un file CSS che sto cercando di rimuovere (voglio usare @import invece per poter sovrascrivere gli stili più facilmente). Starkers ha il seguente codice nel suo 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' );
}
Ho provato il seguente codice nel functions.php del tema figlio, ma i tag link e script continuano ad apparire nella sezione head.
add_action('init', 'removeScripts');
function removeScripts() {
wp_dequeue_style('screen');
wp_deregister_script('site');
}
Ho controllato due volte per vedere se sono codificati direttamente nell'header del tema padre e non lo sono.

Voglio usare @import così posso sovrascrivere gli stili più facilmente
Semplicemente. Non. Farlo.
Puoi semplicemente agganciarti allo stesso hook e poi deregistrare/rimuovere gli stili/script e inserire i tuoi personalizzati.
function PREFIX_remove_scripts() {
wp_dequeue_style( 'screen' );
wp_deregister_style( 'screen' );
wp_dequeue_script( 'site' );
wp_deregister_script( 'site' );
// Ora registra qui i tuoi stili e script
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );
Il motivo per rimuovere e deregistrare gli script è semplice:
Nota che se vuoi poter usare uno di quei handle (
'screen'
o'site'
) dopo averli rimossi, dovrai anche deregistrarli. Ad esempio:wp_deregister_style( 'screen' );
ewp_deregister_script( 'site' );
- peterjmag

Ecco come puoi rimuovere il foglio di stile del tema genitore e sostituirlo con quello del tema figlio OPPURE semplicemente rimuovere il foglio di stile del genitore in modo che non venga mai caricato.
functions.php del tema 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' );
}
Ricorda l'handle che usano per lo stile, 'screen'
Sostituire il foglio di stile del tema genitore con quello del tema figlio
functions.php del tema Starker-Child:
function custom_starkers_styles() {
//Rimuovi gli stili desiderati del genitore
wp_dequeue_style( 'screen');
//Sostituisci con gli stili personalizzati del figlio
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 );
Rimuovere il foglio di stile del tema genitore
functions.php del tema Starker-Child:
function remove_starkers_styles() {
//Rimuovi gli stili desiderati del genitore
wp_dequeue_style( 'screen');
}
add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );
Assegniamo una priorità di 20 (il default è 10) all'add_action() del tema figlio perché vogliamo che venga eseguito DOPO che il tema genitore lo ha accodato. Più alta è la priorità, più tardi verrà eseguita. 20 > 10 quindi l'azione del tema figlio verrà sempre eseguita dopo che il tema genitore ha già completato la sua esecuzione.
