Comment retirer le fichier CSS d'un thème parent?
2 réponses
- votes
-
- 2012-09-18
Je souhaite utiliser @import à laplacepourpouvoir remplacer les stylesplusfacilement
Simplement.Nefaispas ça.Faire.Cela.
Vous sautez simplement dans lemême hook,puis désenregistrez/retirez les styles/scriptset ajoutez vos stylespersonnalisés.
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 );
La raison de la suppressionet de la désinscription des scriptsest simple:
Notez que si vous souhaitezpouvoir utiliser l'une de cespoignées (
'screen'
ou'site'
) après les avoir retirées de lafile d'attente,vous aurezbesoinpour les désinscrire également.Parexemple:wp_deregister_style( 'screen' );
etwp_deregister_script( 'site' );
- peterjmagI want to use @import instead so I can override styles more easily
Simply. Don't. Do. That.
You simply jump into the same hook and then deregister/dequeue the styles/scripts and throw in your custom ones.
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 );
The reason for dequeue-ing and deregistering the scripts is simple:
Note that if you'd like to be able to use either of those handles (
'screen'
or'site'
) after dequeuing them, you'll need to deregister them too. For instance:wp_deregister_style( 'screen' );
andwp_deregister_script( 'site' );
- peterjmag-
C'estpeut-être simplemais la documentation WP officiellefait défaut alors https://codex.wordpress.org/Child_Themes.Ilsne parlentpas de retraitet de désenregistrementpour lesthèmesenfantsIt's perhaps simple but the official WP doc is lacking then https://codex.wordpress.org/Child_Themes . They do not speak about dequeue and deregister for child themes
- 1
- 2018-12-12
- gagarine
-
- 2016-03-07
Voici comment supprimer lafeuille de style duthèmeparentet la remplacerpar lafeuille de style d'unthèmeenfant OU simplement supprimer lafeuille de style duthèmeparent detout chargement.
functions.php duthème 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' ); }
Souvenez-vous de lapoignée qu'ils appellent le style,'screen'[/
Remplacement duthèmeparentpar lafeuille de style duthèmeenfant
functions.php duthème Starker-Child:
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 );
Supprimer lafeuille de style duthèmeparent
functions.php duthème Starker-Child:
function remove_starkers_styles() { //Remove desired parent styles wp_dequeue_style( 'screen'); } add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );
Nous donnons authèmeenfant add_action () unepriorité de 20 (la valeurpar défautest 10) carnous voulons qu'il s'exécute APRÈS que lethèmeparent l'aitmisen file d'attente. Plus laprioritéest élevée,pluselle s'exécuteratard. 20> 10pour que l'action duthèmeenfant s'exécutetoujours après l'exécution duthèmeparent.
Here is how you would either remove the parent theme's stylesheet and replace it with a child theme's stylesheet OR just remove the parent's stylesheet from ever being loaded.
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' ); }
Remember the handle that they call the style, 'screen'
Replacing parent theme's with child theme's stylesheet
Starker-Child theme's functions.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 );
Remove parent theme's stylesheet
Starker-Child theme's functions.php:
function remove_starkers_styles() { //Remove desired parent styles wp_dequeue_style( 'screen'); } add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );
We give the child theme's add_action() a priority of 20 (default is 10) because we want it to run AFTER the parent theme has queued it up. The higher the priority, the later it will run. 20 > 10 so the child theme's action will always run after the parent theme has already executed.
Monthèmeparent (Starkers) ajoute unfichier CSS quej'essaie de supprimer (je souhaite utiliser @import à laplacepourpouvoir remplacer les stylesplusfacilement). Starkers a ce qui suit dans sonfunctions.php:
J'aiessayé ce qui suit dans lefichierfunctions.php,mais lesbalises de lienet de script apparaissenttoujours dans la section head.
J'ai vérifié deuxfoispour voir s'ils sont codésen dur dans l'en-têteparentet qu'ilsne le sontpas.