我正在开发我想要灵活的 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() 的所有其他文件中,它完全正常工作。如果您能给我任何建议或解决方法,我将很高兴。
祝你有美好的一天:)
最佳答案
如果样式表包含为 <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 两次。)
可能更好、更有效的方法是将自定义样式直接注入(inject) <head>
像这样的文档:
<head>
...
<style>
body {
background-color: #CCC;
}
</style>
</head>
为此,您的主题可以使用 wp_head
Action Hook ...
add_action("wp_head", "my_print_custom_style");
function my_print_custom_style(){
//look up the option
//echo out the <style> tag and css
}
编辑----
我把它变得比它需要的更复杂。由于您编写的是主题而不是插件,因此您可以输出 <style>
直接在 header.php
中标记而不是摆弄 wp_head
Action Hook 。
关于css - 在可自定义样式表中调用 get_option Wordpress 函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6954542/