web-dev-qa-db-fra.com

Générer des fichiers CSS dynamiquement en utilisant PHP Des scripts?

Dans le cadre de mes efforts pour accélérer les thèmes pour mes clients, je fournis mon CSS via un fichier dynamique PHP. A la fin de l'appelé pour l'exemple my_theme_css.php:

Cela me permet d’ajouter des en-têtes Expiry à mes CSS et JavaScript de la manière suivante:

<?php
header("Expires: Thu, 31 Dec 2020 20:00:00 GMT");
header('Content-type: text/css');
?>

Je souhaite ensuite autoriser l'utilisateur à ajouter son propre CSS personnalisé afin de définir les paramètres suivants:

<?php
header("Expires: Thu, 31 Dec 2020 20:00:00 GMT");
header('Content-type: text/css');
?>

p{color:blue;}

/** Custom CSS **/
<?php 
if(get_theme_mod('my_custom_css') != '') {
  $my_custom_css = get_theme_mod('my_custom_css'); 
  echo $my_custom_css; 
}
?> 

J'ai ensuite ajouté les options de thème applicables. Mais ce que je constate, c’est que get_theme_mod() ne fonctionne pas en raison d’un problème de portée (j’imagine.) Des suggestions sur la façon de contourner cela?

Je pourrais ajouter le code suivant:

<?php 
if(get_theme_mod('my_custom_css') != '') {
  $my_custom_css = get_theme_mod('my_custom_css'); 
  echo $my_custom_css; 
}
?>

Dans les balises <style></style> dans l'en-tête et cela fonctionnerait bien, attendez-vous à ce que je ne veuille pas le CSS en ligne, je le veux dans le fichier CSS principal avec l'en-tête Expiry.

7
Ashley G

Essayez de le coder comme ceci:

<?php $my_custom_css = get_theme_mod('my_custom_css');
  if(!empty($my_custom_css)) {
    echo $my_custom_css;
  }
?>

Cela devrait vous éviter les problèmes de portée avec la fonction get_theme_mod().

0
dgw