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

标签 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() 的所有其他文件中,它完全正常工作。如果您能给我任何建议或解决方法,我将很高兴。

祝你有美好的一天:)

最佳答案

如果样式表包含为 <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/

相关文章:

android - Theme.Light 不适用于 Android API 级别 9

java - 如何在 vaadin10 或自定义默认主题(lumo)中创建自定义主题

javascript - 在 jquery 中,如何设置元素的背景图像而不在我的 javascript 中对图像的 url 进行硬编码?

css - 如何使除顶部边框之外的所有边框都没有显示?

HTML5/CSS3 : Hover Image Replacement

php - Admin-ajax.php 获取 CSS 文件 (Wordpress)

Android - 如何使用默认的 Theme.Light 显示 Action Bar

html - 当标签在输入标签之前时,图像上传设计不起作用

javascript - 未捕获的 TypeError : jQuery(. ..).flexslider 不是函数

wordpress - 播放按钮显示在移动设备的背景图片上