【问题标题】:Problem with get_option Wordpress function called in customizable stylesheet在可自定义的样式表中调用 get_option Wordpress 函数的问题
【发布时间】:2011-08-05 18:57:14
【问题描述】:

我正在开发希望灵活的 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......... */

我把这个文件包含在标题部分,就像普通的样式表一样。问题是我在此文件中收到“Call to undefined function get_option()”错误。我想知道如何使它工作。在我调用 get_option() 的所有其他文件中,它完全正常工作。如果您能给我任何建议或解决方法,我会很高兴。

祝你有美好的一天:)

【问题讨论】:

  • 在这里和那里阅读了一些内容后,我认为我在 get_option() 之前调用 header() 函数存在一些问题。但是当我尝试在 header() 之前调用 get_option() 时,它会将 style.php 检测为 MIME/HTML 文件...

标签: css wordpress themes


【解决方案1】:

如果样式表作为 &lt;link&gt; 标签包含在 header.php 中,像这样...

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

然后style.php 脚本无权访问 WordPress,除非您在脚本顶部加载 WordPress。这样做会很棘手且需要大量资源(每次页面加载都会加载 WP 两次。)

可能一种更好、更高效的方法是将自定义样式直接注入到文档的&lt;head&gt; 中,如下所示:

<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
}

编辑---- 我把它弄得比它需要的更复杂。由于您编写的是主题而不是插件,因此您可以直接在header.php 中输出&lt;style&gt; 标签,而不是使用wp_head 操作挂钩。

【讨论】:

  • 嗨,克里斯!谢谢您的答复。我的第一个想法是将 CSS 放在标题中,但会有很多 CSS,我决定将它移动到单独的文件中,因为它可能会有点“混乱”。也许我会暂时把它放在标题中,直到找到更好的解决方案。
  • 没有问题。您还可以在管理员更新选项时生成custom.css,将其放在主题根目录中,并将其作为样式表链接添加到style.css
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 2014-02-11
  • 1970-01-01
相关资源
最近更新 更多