J'ai récemment publié un plugin, WP Coda Slider , qui utilise des shortcodes pour ajouter un curseur jQuery à n'importe quelle publication ou page. J'ajoute une page d'options dans la prochaine version et je voudrais inclure quelques options CSS mais je ne veux pas que le plugin ajoute les choix de style en CSS en ligne. Je veux que les choix soient ajoutés dynamiquement au fichier CSS lors de son appel.
Je voudrais également éviter d'utiliser fopen ou d'écrire dans un fichier pour des problèmes de sécurité.
Est-ce que quelque chose comme ça est facile à réaliser ou serais-je mieux de simplement ajouter les choix de style directement à la page?
plugin-development
css
options
Chris_O
la source
la source
wp_enqueue_style()
(etwp_enqueue_script()
) avec un nom de fonction au lieu d'un nom de fichier et que ma fonction génère le CSS (ou JS) mais qu'il soit finalement inclus via une feuille de style liée. Pour autant que je sache, ce n'est pas possible avec leswp_equeue_*()
fonctions. Peut-être devrions-nous soumettre un ticket Trac?Réponses:
Utilisez
wp_register_style
etwp_enqueue_style
pour ajouter la feuille de style. N'ajoutez PAS simplement un lien vers une feuille de stylewp_head
. Les styles de file d'attente permettent à d'autres plugins ou thèmes de modifier la feuille de style si nécessaire.Votre feuille de style peut être un fichier .php:
my-stylesheet.php ressemblerait à ceci:
la source
La création dynamique d'un fichier CSS, puis son chargement ajoute une énorme charge de performances à ce qui devrait être une très faible bande passante d'ajout d'un fichier CSS, surtout s'il y a des variables dans le CSS qui vont être traitées via WP. Parce qu'il s'agit de deux fichiers différents en cours de création pour un chargement de page, WP démarre deux fois et exécute toutes les requêtes DB deux fois, et c'est un gros gâchis.
Si votre curseur ne se trouve que sur une seule page et que vous souhaitez que les styles soient définis dynamiquement, alors votre meilleur pari est d'ajouter un bloc de style à l'en-tête.
Par ordre de performance:
la source
Voici comment je le fais habituellement:
la source
J'ai eu du mal avec toutes les recommandations de cet acabit - peut-être que je suis un peu épais, ou peut-être que les contributeurs ont perdu le contact commun.
J'ai décidé de coder cela dans le fichier php du plug-in: -
Cela semble fonctionner. Il ne se charge que sur les pages qui utilisent le plugin. Il se charge après la balise h1, ce qui me convient. Je ne vois pas comment cela pourrait être plus efficace ou plus clair.
.... mais peut-être que je me trompe - j'ai dit que j'étais un peu épais.
la source
<link>
éléments dans la tête de pageMise à jour depuis Wordpress 3.3
Il existe une fonction appelée wp_add_inline_style qui peut être utilisée pour ajouter dynamiquement des styles en fonction des options de thème / plugin. Cela peut être utilisé pour ajouter un petit fichier CSS dans la tête qui devrait être rapide et efficace.
la source