wordpress 中如何在子主题中移子主题的样式,保留父主题的样式

wordpress中使用子主题制作新的主题非常方便和有用。为什么采取子主题的方式可以,看下这篇文章。为什么要通过创建wordpress子主题的方式修改主题

这里有个问题就是,会在子主题中使用 @import 的方式引入了父主题中的样式。我个人不太喜欢这样方式,也会有速度方面的问题。

在子主题中移除自己的样式

<?php
add_action('wp_enqueue_scripts',function () {
    if(is_child_theme()) {
        wp_dequeue_style(wp_get_theme()->template . '-stylesheet');
        wp_enqueue_style('style', get_template_directory_uri() .'/style.css', null, null );
        wp_enqueue_style('style-child', get_stylesheet_directory_uri() .'/style.css', null, null );
    }
}, 999);

通常来说,在子主题中,会加载一条样式 id 为 父主题的名字 + -stylesheet-css 的样式,内容是子主题中的 style.css 内容。可以通过下面的代码进行移除。

wp_dequeue_style(wp_get_theme()->template . '-stylesheet');

然后加载模板目录的样式

wp_enqueue_style('style', get_template_directory_uri() .'/style.css', null, null )

最后增加自己需要的新的样式

wp_enqueue_style('style-child', get_stylesheet_directory_uri() .'/style.css', null, null )

最终可以保留模板中的样式文件,同时新增加一个子主题的样式文件。这样分开,即使后期更新了模板主题,休要修改子主题也非常方便。

一句话便于维护。