在可自定义的样式表中调用get_option Wordpress函数的问题

时间:2011-08-05 09:56:35

标签: css wordpress themes

我正在开发WordPress主题,我想要灵活,我希望管理员能够更改主题的颜色。这就是为什么我决定使用在运行时使用以下代码生成的样式表“style.php”:

<?php 
    header("Content-type: text/css");
    $options = get_option( "option_group" );
?>

body {
    background-color: <?php echo $options["body-color"]; ?>
}

/* The rest of the css goes here......... */

我将此文件包含在标题部分中,就像普通样式表一样。问题是我在这个文件中得到“调用未定义函数get_option()”错误。我想知道如何让它工作。在我调用get_option()的每个其他文件中,它完全正常。如果你能给我任何建议或解决,我会很高兴。

度过愉快的一天:)

1 个答案:

答案 0 :(得分:2)

如果样式表作为<link>标记包含在header.php中,就像这样......

<link href="http://YOURSERVER/wp-content/themes/YOURTHEME/style.php" media="all" type="text/css" rel="stylesheet">

然后style.php脚本无法访问WordPress,除非您在脚本顶部加载WordPress。这样做会很棘手。资源密集型(每次加载页面时都会加载WP两次。)

可能更好,更有效的方法是直接在文档的<head>中注入自定义样式,如下所示:

<head>
...
<style>
body {
     background-color: #CCC;
}
</style>
</head>

要执行此操作,您的主题可以使用wp_head操作挂钩...

add_action("wp_head", "my_print_custom_style");
function my_print_custom_style(){
    //look up the option
    //echo out the <style> tag and css
}

EDIT ---- 我把它变得比它需要的更复杂。由于您正在编写主题而不是插件,因此您可以直接在<style>中输出header.php标记,而不是使用wp_head操作挂钩。