WordPress : Identifier la priorité de style.css afin que je puisse faire durer le chargement d’un petit fichier CSS
J’ai un petit peu de CSS qui change toutes les heures et je veux
-
conservez-le dans un second fichier (à part style.css) et
-
chargez-le après le fichier de mon thème
style.css
.
Je crois que je peux le faire charger avant style.css
en définissant sa priorité sur le style.css
moins 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 ?
ps Je ne veux pas mettre en file d’attente les styles en ligne dans mon functions.php
parce 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_styles
classe (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.css
est mis en file d’attente avant B.css
mais 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_deps
méthode de la classe parent.
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_head
crochet. Sans élégance, mais efficace.
0 commentaire