在“CSS”中访问全局变量(style.php)

时间:2010-09-26 03:59:01

标签: php wordpress global-variables

我正在做一个style.php CSS文件,所以我可以在Wordpress安装中的CSS中使用一些动态变量:

<?php header("Content-type: text/css"); ?>

等等。

如何从style.php文件中访问全局变量或将变量传递给它?

我试图在CSS中工作的代码就像

$maincolor = $cap->br_main_color;

此外:

  • 忽略缓存问题。这只是一个个人项目。
  • 将链接中的变量传递给样式表对于此来说过于复杂(在我看来)。
编辑:作为一个更多的解释:我正在做的是生成一个基于多种颜色的整个主题和计算悬停效果的阴影等。大约50%的样式中有一些PHP。如果我手动为style.php输入颜色,一切正常,但是我试图让那些技术含量较低的人更简单,并使用颜色选择器。

2 个答案:

答案 0 :(得分:4)

这是一个将php嵌入Wordpress .css样式表(我不确定的有用性)的替代解决方案,它不需要操纵Wordpress核心。

只需在主题目录中创建包含常用代码的php嵌入式css文件:


embedded_style.php

/* define document as css*/
<?php header("Content-type: text/css"); ?>

/* Example php variable declaration and function call */
<?php $body_color = get_color(); ?>

/* Begin php embedded css code below here */
body {
    background: none;
    color: <?php echo $body_color ?>;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 10pt
}

然后将此动态文件导入主题style.css,这样您就不必修改Wordpress核心。


的style.css

/*  
Theme Name: Mytheme
Version: 1.0
Description: This theme has php embedded css
Author: You
*/
@import url(embedded_style.php);
/* Normal CSS below as required */

我的2美分

此代码段的起源是尝试在从父主题导入css到我的孩子时允许不同的目录名称。我不喜欢修改核心wordpress文件的想法,但是因为大多数函数/钩子都没有在style.css运行时定义来中断调用,所以必须找到替代方法。 最后我没有使用它,原因与我无法中断文件调用相同(使用wordpress方便常量等等太早),但希望它对其他人有用。

答案 1 :(得分:3)

要访问wordpress函数,您需要在style.php文件的顶部包含以下行。

define('WP_USE_THEMES', false);
require('./wp-blog-header.php');

第一行告诉wordpress不要运行与主题相关的进程,第二行运行wordpress引擎。在此之后,您可以访问wordpress函数和全局变量。