如何在WordPress中动态添加CSS样式表

时间:2011-01-18 作者:cmurockstar

当满足某些条件时(例如,post vs.page或类别被标记等),我想加载一个额外的CSS文件。理论上,此文件将更改链接颜色。或者改变背景颜色。外观变化。我的想法是为函数添加代码。然而,我不认为这实际上是在添加CSS页面。即使(即使现在没有条件,也应该总是添加这个新页面)。

帮助

 /*
  * register with hook \'wp_print_styles\'
  */
  add_action(\'wp_print_styles\', \'add_my_stylesheet\');

/*
 * Enqueue style-file, if it exists.
 */

function add_my_stylesheet() {
    $myStyleUrl = WP_THEME_URL . \'/newStyle.css\';
    $myStyleFile = WP_THEME_URL . \'/newStyle.css\';
    if ( file_exists($myStyleFile) ) {
        wp_register_style(\'myStyleSheets\', $myStyleUrl);
        wp_enqueue_style( \'myStyleSheets\');
    }

}
谢谢你

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

似乎复制/粘贴出错了-您的两个变量都指向相同的URL链接,所以file_exists() 失败,因为它需要本地路径。

改变$myStyleFile 到本地路径,它应该可以工作。

SO网友:Will Lanni

在函数中使用WordPress条件标记。要在主题中的特定页面上注册和排队的php文件:http://codex.wordpress.org/Conditional_Tags

    // script manager template for registering and enqueuing files
    function childtheme_script_manager() {
        // register custom style on your specific page
        // use WordPress conditionals: 
        if (is_page(\'your-page-slug\')) {
            wp_register_style(\'custom-css\', get_stylesheet_directory_uri() . \'/custom-style.css\');
            wp_enqueue_style (\'custom-css-css\');
        }
    }
    add_action(\'wp_enqueue_scripts\', \'childtheme_script_manager\');

结束