I\'m doing a style.php CSS file so I can use some dynamic variables in the CSS within a Wordpress installation:
Here's an alternative solution to embedding php in a Wordpress .css stylesheet (the usefulness i'm not sure on) that doesn't require manipulation of the Wordpress core.
Simply make the php embedded css file in your theme dir containing the usual code:
/* 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
}
Then import this dynamic file into your themes style.css so that you don't have to modify the Wordpress core.
/*
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 */
The genesis of this snippet was an attempt to allow for varying directory names when importing css from a parent-theme to my child. I didn't like the idea of modifying core wordpress files however as most functions/hooks are not defined at the style.css runtime to interrupt the call it was necessary to find an alternate method. In the end I haven't used this for the same reasons I couldn't interrupt the file-call (too early to use wordpress convenient constants etc.), however hopefully it will come in useful for someone else.
To access the wordpress functions you need to include the following lines on top of your style.php file.
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
The first line tells wordpress not to run theme related processes and the second line runs the wordpress engine. After this point you have access to the wordpress functions and the global variables.