1

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

在此处输入图像描述

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

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

1) 仅选择背景颜色

背景:#990000;

2) 仅选择背景图像

背景:url(../images/example.jpg) 不重复左上滚动;

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

背景:#990000 url(../images/example.jpg) 不重复左上滚动;


这是我当前将脚本输出到 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() 不重复左上滚动;

2) 仅选择背景图像

背景:url(../images/example.jpg) 不重复左上滚动;

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

背景:#990000 url(../images/example.jpg) 不重复左上滚动;

由于我对编写 PHP 还很陌生,我将如何重新编写上面的代码片段以获得我想要的结果?

4

1 回答 1

2

更改以下内容:

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

对此:

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

你的代码片段不能像你想要的那样工作的原因是因为“||” 等于“OR”,这意味着如果设置了“$background['color']”或“$background['image']”,则将应用 if 语句。

改用“&&”,在英文中的意思是“AND”,如果同时设置了“color”和“image”,if 语句将只适用。

于 2013-01-04T07:39:15.977 回答