在我的主题中,我使用主题选项将颜色设置为类别(标题颜色、分隔符颜色等),我这样做的方式是定义保存颜色六边形的变量,如下所示:
$category1_color = get_option(\'category1_color\');
$category2_color = get_option(\'category2_color\');
等等。。
在我的管理员中设置颜色(e.g - #ffccoo or yellow) 在一个“主题选项”中,我已经构建了一个客户端,可以在一秒钟内轻松更改每个类别元素的全局颜色。
像这样:
if (is_category("news")) { echo \' style="border-bottom-color:\' . $category1_color . \';"\'; } ?>
现在-我的客户有一个自定义的顶部菜单,其中包含项目(主要是类别)
我希望他也能够改变菜单中文本的颜色。现在,我知道可以将类添加到每个菜单项中(这相当容易),但我不想在CSS文件中创建类,因为它不是动态的,我希望它获取客户已经更改的变量-$category1_color (假设它现在设置为紫色)并将其动态分配给一个名为“category1 item”的类,该类用作菜单项上的类,因此如果客户端稍后在“我的主题选项”中更改颜色,它也会动态更改菜单项的颜色,而无需转到CSS文件并对其进行编辑。
我正在考虑在functions.php 文件,并简单地将我已经创建的变量(已保存颜色)存储在此类中,如下所示:
类别1项目=$类别1\\u颜色
我只是不知道如何将类添加到函数中。php文件,并在每个类中存储一个变量。
有什么想法吗?
SO网友:Johannes Pille
首先,撇开数据的来源(WordPress主题选项)不谈,这个问题基本上是关于通用PHP和CSS的。
话虽如此,但方法如下:
PHP样式表向主题中添加一个新文件,称之为“dynamic\\u styles.PHP”等。请注意,虽然它将主要包含CSS,但您可以给它一个.php
文件扩展名
这告诉服务器在将文件提供给客户端之前,先用PHP解释器解析文件。
在新文件的第一行中,您将内容类型设置为“css”:
<?php
header("Content-type: text/css; charset: UTF-8");
?>
然后,像通常一样获取值(使用上面的示例):
<?php
header("Content-type: text/css; charset: UTF-8");
$category1_color = get_option(\'category1_color\');
$category2_color = get_option(\'category2_color\');
?>
现在,在以后的CSS中使用这些内容,就像使用HTML标记一样:
div.cat-1 {
border-bottom-color: <?php echo $category1_color; ?>;
}
警告尽管上述方法可以完美地工作,但如果变量具有静态值,则必须在样式表中额外使用WP函数。
已经解释了如何进行in this excellent answer.