仅输出背景颜色,仅输出图像或两者兼而有之

时间:2013-01-04 07:35:00

标签: php

在我的模板上,我有一个字段,用户可以选择并选择其网站的背景。

enter image description here

这是从数组中的ID background-one调用的。

我的问题是,如果仅向用户提供以下选项,我将如何正确地将其输出到我的CSS的head部分:

1)只选择背景颜色

  

背景:#990000;

2)仅选择背景图像

  

background:url(../ images / example.jpg)no-repeat左上角滚动;

3)或选择背景颜色和图像

  

背景:#990000 url(../ images / example.jpg)no-repeat左上角滚动;


这是我目前的代码片段,用于将脚本输出到css head部分:

<?php $background = of_get_option('background-one'); {  
    if ($background['color'] || $background['image']) {
        echo 'body {
        background: ' . $background['color'] . ' url(' . $background['image']. ') ' .$background['repeat']. ' ' .$background['position']. ' ' .$background['attachment']. ';';
    }

    else if ($background['color']) {  
        echo 'body {
        background: ' . $background['color']. ';';
    }

    else if ($background['image']) {
        echo 'body {
        background: ' . 'url(' . $background['image']. ') ' .$background['repeat']. ' ' .$background['position']. ' ' .$background['attachment']. ';';
    };
}
?>

但有了这个,结果是:

1)只选择背景颜色

  

背景:#990000 url()no-repeat左上角滚动;

2)仅选择背景图像

  

背景:网址(../ images / example.jpg)无重复左上方滚动;

3)或选择背景颜色和图像

  

背景:#990000 url(../ images / example.jpg)no-repeat左上角滚动;

由于我是编写PHP的新手,我如何重新处理上面的代码片段以获得我想要的结果?

1 个答案:

答案 0 :(得分:2)

更改以下内容:

if ($background['color'] || $background['image']) {

对此:

if ($background['color'] && $background['image']) {

您的代码段无法正常工作的原因是因为“||”等于“OR”,这意味着如果设置了“$ background ['color']”或“$ background ['image']”,则if语句将适用。

使用“&amp;&amp;”相反,在英语中表示“AND”,只有在设置了“color”和“image”时才会使if语句适用。