【问题标题】:W3 Total Cache does not combine / minify child theme CSSW3 Total Cache 不合并/缩小子主题 CSS
【发布时间】:2015-12-04 12:11:56
【问题描述】:

我有一个子主题,W3 Total Cache 对所有父主题的 CSS 文件进行了所有合并和缩小,但我的子主题的 style.css 文件仍然在合并和缩小的文件之外。这也破坏了我的样式,因为包含 CSS 文件的顺序被破坏了。这就是我包含父主题的 CSS 文件的方式 - 我在子主题的 functions.php 中添加了以下行:

function theme_enqueue_styles() {

global $wp_styles;
$parent_style = 'parent-style';

wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
    get_stylesheet_directory_uri() . '/style.css',
    array( $parent_style )
);
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

是否有其他方法可以链接 CSS 文件以便它们被 W3 Total Cache 正确拦截?

【问题讨论】:

    标签: php wordpress caching


    【解决方案1】:

    尝试为子主题启用@import 处理

    您也不需要将子主题的 style.css 排入队列,因为它默认排入队列。而只是将父样式表排入队列。

    // Child-theme Functions.php
    function theme_enqueue_styles() {
    
        global $wp_styles;
        $parent_style = 'parent-style';
        wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    
    }
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    

    【讨论】:

    • 我不使用@import 来获取父样式。我的子主题确实有自己的 style.css,但我想包含父主题样式,并将我的样式层叠在它们之上。这就是为什么我将我的 CSS 包含在父样式中的原因,我推荐的方式是我发现的(例如:link
    • 这是一种 hack 而不是推荐的方式,它完全违反了首先具有优先级和依赖关系的全部要点。它还使您坚持特定的儿童主题。其次,我认为 w3total 缓存会自动导入您的子主题,即使您不是在styles.css 中自己执行此操作,所以您应该启用它。
    • 那么“合法”和建议的方式是什么——通过@import?
    • 不推荐的方式是通过父主题将父样式入队,通过具有依赖关系的子主题将子样式入队。然后允许导入,希望它会自动以正确的顺序将子样式导入到父级中。
    • 您可以做的另一件事是从代码中删除第二个 enqueue 行,因为 style.css 会自动加入活动主题。
    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 2014-01-07
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2020-07-30
    相关资源
    最近更新 更多