web-dev-qa-db-fra.com

Quel paramètre dois-je transmettre à wp_enqueue_style pour dépendre de la feuille de style des thèmes?

J'ai écrit un plugin de galerie basique qui utilise wp_enqueue_style pour inclure une feuille de style sur la page. J'aimerais que le thème WordPress puisse remplacer le style du plugin, ce qui signifie que j'aimerais que mon plugin joue Nice et produise le fichier css avant le thème fichier css.

wp_enqueue_style a un paramètre deps pour exactement cette exigence. Ma question est quelle valeur dois-je utiliser pour le paramètre deps si je veux dire "je dépend du fichier CSS de thèmes"?

Le code du plugin actuel est incorrect car il utilise false pour le paramètre deps:

   // Enqueue a CSS style file - see http://codex.wordpress.org/Function_Reference/wp_enqueue_style                                                         
   wp_enqueue_style('bitvol_galleria_css', BITVOL_GALLERIA_URL . '/bitvolution-image-galleria.css', false, $this->bitvol_galleria_version, 'all' );
1
Tom

Premier problème - vous avez une dépendance à l'envers. Dépendre de quelque chose signifie charger après dépendance, alors que vous voulez plus tôt.

Deuxième problème - la feuille de style du thème n'utilise pas réellement la mise en file d'attente, elle est généralement codée directement dans le fichier header.php du thème. Et comme il semble venir avant l'appel wp_head(), vous n'avez aucun moyen de vous assurer que votre feuille de style est au-dessus.

C'est donc généralement traité comme votre solution de contournement - en file d'attente avec option pour le désactiver par code ou par option dans admin.

2
Rarst

Je pensais publier ma solution de contournement que j'utilise jusqu'à ce que je connaisse la réponse à la question ...

Ma solution est la suivante:

  1. Coupez et collez le code CSS du plugin dans le thème (c.-à-d. style.css) et modifiez-le si nécessaire.
  2. Dites au thème d'empêcher le plug-in de générer une feuille de style en le désenregistrant dans functions.php:

Code à mettre dans functions.php:

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
  wp_deregister_style( 'bitvol_galleria_css' );
}

À certains égards, cette solution de contournement pourrait être la meilleure solution? (car les performances du site Web seront meilleures en réduisant au minimum le nombre de ressources CSS incluses dans la section HEAD).

1
Tom