web-dev-qa-db-ja.com

CSSファイルを動的に生成する PHP スクリプト?

クライアントのためにテーマをスピードアップするための私の努力の一環として、動的なPHPファイルを介してCSSを配信しています。たとえばmy_theme_css.phpの最後に

これにより、私のCSSとJavaScriptにExpiryヘッダを追加することができます。

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

それから私はユーザーが自分自身のカスタムCSSを追加できるようにしたいので、私は以下を設定しました:

<?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; 
}
?> 

それから私は適切なテーマオプションを追加しました。しかし、私が発見しているのは、get_theme_mod()がスコープの問題のために機能しないということです(私は想像しています)。

私は以下のコードを追加することができます:

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

ヘッダの<style></style>タグの中で、それはうまくいくでしょう、私はCSSをインラインにしたくない、期待のヘッダを持つメインCSSファイルの上にそれが欲しいと思います。

7
Ashley G

次のようにコーディングしてみてください。

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

それはget_theme_mod()関数でスコープ問題を回避するはずです。

0
dgw