EDIT
Forget my answer below. You could simply use wp_register_style
and wp_enqueue_style
described in this answer.
You could do it with an additional query variable.
- Add a new variable to the
$query_vars
array with thequery_vars
filter -
On the
template_redirect
action, make sure yourcustom.php
-css file is included, if the query variable is set.// functions.php function wpse26013_add_query_vars(query_vars) { $query_vars[] = 'style'; return $query_vars; } add_filter('query_vars', 'wpse26013_add_query_vars'); function wpse26013_include_custom_css() { $style = get_query_var('style'); if($style == 'custom') { include_once(get_stylesheet_directory_uri() . '/css/custom.php'); return; } } add_action('template_redirect', 'wpse26013_include_custom_css');
Then you can add a simple css include in your header file.
// header.php
<link rel="stylesheet" type="text/css" media="all" href="https://wordpress.stackexchange.com/questions/26013/<?php bloginfo("stylesheet_url') . '/css/?style=custom'; ?>" />
Last but not least, you have to define your custom css file.
// custom.php
<?php
header('Content-type: text/css');
header("Cache-Control: must-revalidate");
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 1209600) . ' GMT');
$options = get_option('webeo');
?>
#header #logo {
background: url('<?php echo get_stylesheet_directory_uri() . '/images/' . $options['header']['site_logo']; ?>') no-repeat;
}
You could also get the contents from the css file with the builtin PHP function file_get_contents()
and print the css directly to the sourcecode.