WordPress : Identifier la priorité de style.css afin que je puisse faire durer le chargement d’un petit fichier CSS

Publié par Jean-Michel le

J’ai un petit peu de CSS qui change toutes les heures et je veux

  1. conservez-le dans un second fichier (à part style.css) et

  2. chargez-le après le fichier de mon thème style.css.

Je crois que je peux le faire charger avant style.cssen définissant sa priorité sur le style.cssmoins un (par exemple, si le style.css principal a une priorité de 10, mon morceau de code aurait une priorité de 9).

Mais voici mon problème: à part les essais et les erreurs, je ne sais pas comment identifier, par programme, la priorité d’une feuille de style. Je sais que je pourrais simplement utiliser la méthode de réduction de moitié pour affiner la valeur, mais je préfère ne pas le faire. Ce serait bien d’apprendre une manière raisonnée de résoudre ce problème. Peut-être existe-t-il une priorité par défaut du fichier CSS du thème principal ? Si tel est le cas, je peux facilement essayer le ($defaultPriorityValue – 1). Est-ce possible, et sinon quel est le bon moyen de le faire ?

Lire également:  Wordpress : Utilisation de la fonction has_term() pour la structure catégorie-sous-catégorie

ps Je ne veux pas mettre en file d’attente les styles en ligne dans mon functions.phpparce que je dois conserver ce code dans un fichier séparé

Bien que j’ai trouvé la solution fonctionnelle que j’ai énumérée dans les réponses ci-dessous, j’aimerais toujours que quelqu’un puisse expliquer s’il existe un moyen d’identifier, par programme, la priorité d’une feuille. Merci!

Solution n°1 trouvée

La solution de dépendance

Une solution fonctionnelle que j’ai trouvée et testée avec succès est venue de la réponse de @ helgatheviking à cette question. Cette solution implique de définir une dépendance sur un petit fichier CSS (qui est un troisième argument) lors de sa mise en file d’attente. Vous définissez la dépendance du petit fichier CSS sur le handle/id du fichier CSS principal.

 wp_enqueue_style(
        'my-little-css-style',
        get_stylesheet_directory_uri() . '/my_little_style.css',
        'themename-style' // this is the dependency, which I set to  the handle of the main css stylesheet. It makes the small sheet load before the main one.
    );

Solution n°2 trouvée

Lorsque vous mettez correctement un fichier en file d’attente, une instance de la wp_stylesclasse (plus à ce sujet) est créée. La priorité des actions est ignorée. Donc, peu importe si vous écrivez quelque chose comme

add_action ('wp_enqueue_scripts','function_adding_main_style',10);
add_action ('wp_enqueue_scripts','function_adding_small_style',11);

La raison en est précisément l’existence du système de dépendance. WP collecte d’abord tous les fichiers de style mis en file d’attente, puis les vérifie pour les dépendances. Si A.cssest mis en file d’attente avant B.cssmais que le premier dépend du second, ils seront chargés en conséquence. Vous pouvez voir cette réorganisation se produire dans la all_depsméthode de la classe parent.

Lire également:  Comment utiliser un widget dans un thème WordPress sans widget ?

Pour faire court : vous n’êtes pas censé jouer avec la priorité des fichiers de style en dehors du système de dépendances que WP vous donne. Votre propre solution est la meilleure.

Cela dit, vous pouvez toujours contourner le système de mise en file d’attente et renvoyer votre fichier directement vers la fin du wp_headcrochet. Sans élégance, mais efficace.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *