web-dev-qa-db-fra.com

Comment travailler avec des styles personnalisés enregistrés dans le thème?

Je crée un thème où l'utilisateur peut enregistrer des styles personnalisés à partir du personnalisateur de thème via l'API de paramètres. Ces informations de style sont enregistrées dans la table d'options en tant que données sérialisées.

Lorsque l’habillage personnalisé est activé, je dois imprimer ces styles CSS sur le site. Il y a trois voies que je pourrais suivre.

  1. Impression de styles personnalisés sur la zone d’en-tête avec la balise <style>.
  2. Créer un fichier custom.css.php où j'imprime ces styles.
  3. Créez un fichier css en utilisant l'opération de fichier php et enregistrez ces styles à chaque fois que l'utilisateur enregistre des styles personnalisés.

Tous ceux qui ont le pour et le contre

  1. Impression à l'intérieur de <head> à l'aide de <style>: Le thème sera utilisé par les spécialistes du marketing Internet qui s'inquiètent du rapport code à texte. L'ajout de 20 à 30 lignes de code CSS augmentera le rapport de code.
  2. Création d'un fichier CSS à l'aide de PHP header(): Les fonctions Wordpress ne sont pas disponibles. Devra les charger ce qui est inefficace. Aussi IE ont quelques problèmes avec cette méthode .

  3. Écrire un fichier CSS chaque fois que l'utilisateur enregistre un style personnalisé: Cela semble être une bonne idée. Mais je ne connais pas suffisamment les avantages et les inconvénients de cette méthode. Et s’il existe des problèmes d’autorisation, le thème peut être confronté lorsqu’il est installé sur différents serveurs par les utilisateurs. _ {J'apprécierai si vous pouviez m'éclairer sur ce sujet}.

Alors, quelle est la bonne voie à suivre dans cette situation.

6
Sisir

Lorsque vos utilisateurs ont réellement besoin de 30 lignes de CSS personnalisées, votre thème est défectueux. Créez à la place un ensemble de styles prédéfinis (schéma foncé et clair, polices sans et serif, etc.) et préparez votre feuille de style principale pour ces cas. Vous pouvez alors vous connecter à body_class et ajouter les classes dont vous avez besoin pour obtenir ces styles.
Les ajustements pour vos utilisateurs devraient alors être très minimes.

Utiliser une extrémité pour une feuille de style générée par PHP } ressemble à votre seconde option. Ce n’est pas un problème dans IE, et un plugin de cache aidera à réduire davantage le temps de traitement. J'utiliserais l'horodatage du dernier changement pour le point final, par exemple:

example.com/css/012345678/

… Pour s'assurer que le navigateur récupère la feuille de style la plus récente et met en cache le fichier comme il se doit.

Option 3 signifie: vous devez enregistrer le fichier par API du système de fichiers , vous devez vous assurer qu'il n'est pas supprimé ultérieurement (compliqué!) Et vous devez remplacer l'ancien fichier pour éviter des quantités insensées de fichiers CSS. . Forcer le nouveau fichier à remplacer le fichier mis en cache sans paramètre GET supplémentaire n’est pas chose facile non plus.

Utilisez un point final.

3
fuxia