我正在开发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()的每个其他文件中,它完全正常。如果你能给我任何建议或解决,我会很高兴。
度过愉快的一天:)
答案 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
操作挂钩。