使用WordPress的parse_request函数进行动态CSS

时间:2011-02-03 09:32:25

标签: css wordpress

按照http://josephscott.org/archives/2010/03/database-powered-css-in-wordpress-themes/的教程,我正在尝试使用wordpress的parse_request函数添加一些php驱动的CSS ...主要是在我的主题选项面板中设置的样式选项。我知道我的代码与作者的代码有点不同,但我已经按照他的方式尝试了。

我可以添加

function kia_wp_head() {
  wp_enqueue_style('dynamic', get_bloginfo('stylesheet_directory') . '/admin/ . '?my-custom-content=css');
}
add_action('wp_print_styles', 'kia_wp_head');
//this shows up properly enqueued but when i click on it in source it just brings up a directory listing for the admin folder


function my_custom_wp_request( $wp ) {
    if( isset($_GET['my-custom-content']) && $_GET['my-custom-content'] == 'css'  ) {

        # get theme options
        header( 'Content-Type: text/css' ); ?>

body {
    background-color: <?php echo 'red'; ?>
}

<?php
        exit;
    }
}
add_action( 'parse_request', 'my_custom_wp_request' );

但由于背景永远不会变成红色,我要么没有正确实现,要么教程缺少关键步骤。我还尝试了将动态css放在自己的custom-css.php文件中的另一种方法,这是我最终的goale,但我只是想看看我是否可以正确地与解析请求函数进行交互:

function my_custom_wp_request( $wp ) {
    if (
        isset($_GET['my-custom-content'])
        && $_GET['my-custom-content'] == 'css'
    ) {
        # get theme options
        header( 'Content-Type: text/css' );
        require dirname( __FILE__ ) . '/custom-css.php';
        exit;
    }
}
add_action( 'parse_request', 'my_custom_wp_request' );

这里我不确定dirname( FILE )究竟是什么意思,但我也尝试使用硬编码路径,但也没用。

那么如何让parse_request看到我的php驱动样式表呢?

/ *编辑解决方案* /

基本上这不起作用w / wp_enqueue_style

wp_enqueue_style('dynamic',get_bloginfo('stylesheet_directory')。'/ admin /。'?my-custom-content = css');

但是,通过将样式标记直接插入头部

,可以按照josephscott.org所述的方式工作  。 “/管理我的定制内容= CSS“&GT?;

1 个答案:

答案 0 :(得分:0)

我发现w / wp_enqueue_script无法正常工作。通过手动将脚本标记添加到标题中,它可以像教程中所写的那样工作。