WordPress加载旧的style.css,然后加载当前的

时间:2017-05-11 作者:wardzin

我是WordPress的新手,所以我不确定它是如何工作的,但我一直在修改主题wp-content/themes/<theme_name>/css/style.css, 然后通过FTP将其上传至网站。这是我遇到的问题:


从Chrome开发工具中,我可以看到style.css (当前文件)正在覆盖style.css?ver=4.6.3. 这意味着,即使我从当前CSS中删除了边框,它仍然会从旧的CSS版本中显示出来。

查看WordPress生成的页面的HTML源代码,我在<head>:

<link rel="stylesheet" id="twentysixteen-style-css" href="http://<web.address>/wp-content/themes/<theme_name>/style.css?ver=4.6.3" type="text/css" media="all">
然后我还发现:

<link href="http://<web.address>/wp-content/themes/<theme_name>/css/style.css" rel="stylesheet" type="text/css">
发生什么事了?为什么WordPress要加载旧版本的style.css, 那么现在的那个呢?

3 个回复
SO网友:Rick Hellewell

样式按照基础代码中指定的顺序加载。它通常在主题的控制下。如果第二个样式文件定义了相同的样式,则第二个样式文件将覆盖第一个样式的“参数”。这是设计好的。

请注意,直接编辑主题文件不是一个好主意。更新主题时,您所做的任何更改都将被覆盖。

如果你想自定义一个主题(及其样式),那么最好创建一个“子主题”。这是一个使用“父”主题的编码/样式,然后从“子”主题添加自定义内容的主题。这是一种很好的尝试主题定制的方法,而不用担心主题更新时您的更改会被“破坏”。

有很多关于如何制作儿童主题的教程。我使用一个名为“子主题向导”的插件来创建必要的子主题文件。

SO网友:Sonali

将您的样式放入将首先加载的“wp\\u head”操作中。

 add_action(\'wp_head\', function () {
     wp_enqueue_style(\'custom-style\', get_stylesheet_directory_uri() . \'/style.css\');
 }

SO网友:Vörös Imi

创建child theme 遵循本指南:https://developer.wordpress.org/themes/advanced-topics/child-themes/

  • (可选但推荐)将css文件放在子主题中(例如/css/style.css)

    在中加载样式functions.php 通过指定应在您的样式之前加载父样式:

  •     function my_enqueue_styles() {
            $parent_style = \'twentysixteen-style\';
    
            wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
            wp_enqueue_style( \'my-style\',
                get_stylesheet_directory_uri() . \'/css/style.css\',
                array( $parent_style ),
                wp_get_theme()->get(\'Version\')
            );  
        }
        add_action( \'wp_enqueue_scripts\', \'my_enqueue_styles\' );
    

    结束

    相关推荐

    最好使用插件将用户生成的JS/CSS添加到主题中

    我想知道添加自定义的最佳用途JS/CSS 主题。我构建了一个小插件,其中有一个部分允许用户添加CSS/JS 他们的主题。现在我想知道哪种方法是最好的:将所有代码保存在自定义数据库中,并将其作为普通代码加载到页眉/页脚中。将所有代码保存在自定义js/css文件(无DB)中,并将文件添加到/页眉/页脚中注意:这些自定义JS/CSS文件是用户自定义构建的,因此用户可以在插件中添加自己的规则。哪个是更好、最安全的解决方案?