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.
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()
.