有没有办法混合CSS和PHP?

时间:2017-09-01 13:48:44

标签: php css

我正在制作一个wordpress主题,我希望有一个自定义标题背景。我以前使用wordpress提供的add_theme_support('custom-header);函数,它的工作原理但不是我想要的方式。我想要一个背景图像而不是img。我做了一个名为header_background_callout()的函数,我添加了一个部分,设置和控制。该功能通过wordpress中的自定义部分工作并输出用户选择的背景URL。有没有办法可以在CSS中做这样的事情? :background-image: url(<?php echo wp_get_attachment_url(<?php get_theme_mod()); ?>);

提前致谢。

4 个答案:

答案 0 :(得分:1)

试试这个。 echo“backgroud-img ='url('get_theme_mod()')'”;

答案 1 :(得分:1)

您可以使用 wp_add_inline_style 为主题添加内嵌样式:

<?php wp_add_inline_style( $handle, $data ); ?>

其中 $ data 是您要包含在主题中的CSS。这样你就可以将你的php变量加载为你网站的CSS。

答案 2 :(得分:0)

是的。是的 我把我的css文件变成了一个php文件,因为我可以像你说的那样做

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

在HTML中,您可以使用它;

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

编辑您可能需要通过以下方式将php文件的标题更改为css文件:

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

答案 3 :(得分: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>