2017-09-01 10 views
1

私はワードプレスのテーマに取り組んでいます。私はカスタムヘッダーの背景を持っています。私はadd_theme_support('custom-header);機能を使用してワードプレスが提供する、それは動作しますが、私はそれが欲しい方法ではありませんでした。私はimgの代わりに背景イメージを持っていたい。私はheader_background_callout()という関数を作って、セクションと設定とコントロールを追加しました。この関数は、ユーザーがwordpressのcustomizeセクションで選択した背景URLを出力して出力します。私はこのような何かをCSSで行うことができる方法はありますか? :background-image: url(<?php echo wp_get_attachment_url(<?php get_theme_mod()); ?>);CSSとPHPを混在させる方法はありますか?

ありがとうございます。

+4

の可能性のある重複した[どのように私は、CSS内でPHPを実行してください](https://でstackoverflow.com/questions/12367134/how-do-i-run-php-inside-css) – GrumpyCrouton

答えて

0

はい種類オフです。
私は、PHPファイルの私のCSSファイルを作って、あなたはそれが好きで使うHTMLでは

background-image: url(<?php echo get_theme_mod(); ?>); // I suppose you need to echo the mod? 

を言うようにそのため、私は行うことができます。あなたがでcssファイルにPHPファイルのヘッダを変更する必要があります

<Link rel="stylesheet" type="text/css" href="style.php"> 

編集:

<?php header("content-type: text/css; charset: UTF-8"); ?> 
+0

それは働いた!しかし、htmlファイルでリンクする代わりにwp_enqueue_style()を使用できる方法がありますか?どうもありがとう。 –

+0

私はエコーと関数の前にwp_get_attachment_url()を忘れました。 –

+0

私はそれが何であるか分かりません。しかし、一般的には、あなたが望むテキストをエコーすることができます。 – Andreas

1

はこれを試してみてください。 echo "backgroud-img = 'url(' get_theme_mod() ')'";

1

あなたは wp_add_inline_style を使用してあなたのテーマにインラインスタイルを追加することができます。

$データは、あなたのテーマに含めるCSSです
<?php wp_add_inline_style($handle, $data); ?> 

。こうすることで、PHP変数をWebサイトのCSSとして読み込むことができます。

0

私はこの簡単な方法を発見し、それが最高に動作します:

あなたのindex.phpファイルの追加で:

<?php 

     function bg_img_alt() { 
     if(get_theme_mod('vibe_hero_background_setting') > 0) { 
      return wp_get_attachment_url(get_theme_mod('vibe_hero_background_setting')); 
     }else{ 
      return get_template_directory_uri() . '/img/bg.jpeg'; 
     } 
     } 
?> 

     <style type="text/css"> 

     background: linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3)), url(<?php echo bg_img_alt(); ?>); 
     background-repeat: no-repeat; 
     background-position: center; 
     background-size: cover; 
     background-attachment: fixed; 
    </style> 
関連する問題