为什么你必须在wordpress中排队样式表


Why do you have to enqueue a stylesheet in wordpress?

为什么必须在WordPress子主题中排队父主题样式表?我在子主题中创建了style.css,当我向其添加更改时,它可以在没有将父样式表排队的functions.php文件的情况下工作,例如更改元素的背景颜色。我已经搜索并回答了,但找不到任何告诉我原因的东西。一切都只是说你必须这样做。

在加载WordPress主题中的样式时,有很多方法可以剥猫皮。

父项将子样式排队.css -在某些主题中,父style.css与父主题php代码中的wp_enqueue_style()一起排队。

2015 默认主题是此方法的一个示例。functions.php行 233 中有行wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() ); 。当主题是独立的时get_stylesheet_uri()返回主题自己的style.css。当存在子主题时get_stylesheet_uri()返回子主题style.css

以上是您的父主题的可能情况。

子项将父样式排队.css -从子主题中,您可以通过以下两种方法之一加载父样式。

  1. enqueue_style(),参数指向父主题。一些类似于:wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); 的 php。这就是你所说的方法。
  2. 从子主题style.css文件中@import。典型的代码行如下:@import url( '../parent-theme-folder/style.css' ); .这并不理想,因为@import会减慢页面加载时间。

更好的方法 - 不要使用根样式.css根本不需要在根文件夹中使用 style.css。WordPress唯一需要这个文件的事情就是阅读顶部评论中的主题信息。这个要求意味着style.css不能最小化,或者至少是最小化的痛苦。最小化是删除代码文件中的所有空格以减小文件大小的过程。这会降低页面加载速度。

因此,现在许多现代主题正在从主题子文件夹中的不同最小化css文件中排队其主要样式。主style.css仅由核心 php 代码读取但未加载到前端的信息注释部分组成。