web-dev-qa-db-fra.com

Comment remplacer proprement le CSS d'un plugin avec un thème enfant?

Je me suis engagé à respecter les conventions WordPress afin de pouvoir créer un thème enfant propre et sexy. Cependant, je ne sais pas comment procéder sur une question donnée.

Je voudrais remplacer le CSS pour certains plugins de mon site WordPress, et ce merveilleux post a été un grand pas dans la bonne direction. Mon seul souci est que je voudrais faire tout ce que je peux pour éviter de surcharger le fichier header.php dans mon thème parent afin de le faire.

Y at-il un autre moyen merveilleux de faire cela? Merci de votre aide!

Mise à jour :

Comme l'a souligné le commentaire d'un autre utilisateur, cela dépend en fait de la manière dont le plugin implémente ses styles. Cela dit, supposons que les plugins fournissent un moyen d'implémenter les styles dans la feuille style.css du thème enfant ou, dans mon cas, dans un dossier styles séparé lié à cette feuille style.css.

Je sais aussi que je peux utiliser !important partout, mais cela est généralement mal vu.

7

Si les plugins ajoutent correctement leurs styles via wp_enqueue_style, il vous suffit de les retirer:

function wpa_dequeue_style() {
    wp_dequeue_style( 'plugin-style-handle' );
}
add_action( 'wp_enqueue_scripts', 'wpa_dequeue_style', 100 );

Que cela fonctionne ou non dépend de comment et où les plugins ajoutent leurs styles, il n'y a donc pas de réponse absolue sans connaître les méthodes spécifiques utilisées par les plugins en question.

EDITER - une autre option qui ne nécessite pas la suppression complète des styles consiste à mettre en file d'attente vos propres styles avec les styles de plug-ins comme dépendance:

wp_enqueue_style(
    'my-styles',
    get_template_directory_uri() . '/mystyles.css',
    array('plugin-style-handle')
);
14
Milo