【问题标题】:Why do you have to enqueue a stylesheet in wordpress?为什么必须在 wordpress 中将样式表排入队列?
【发布时间】:2016-01-15 00:59:19
【问题描述】:

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

【问题讨论】:

  • 如果您不将父样式表排入队列或导入它(在子主题顶部查找“import”),则不会加载其中的任何 css 属性(查看页面源以查找加载的样式表)。所以如果你可以不用这些,没问题。
  • ps 我注意到你之前问过一个问题,但没有接受给出或回复的答案,有点粗鲁!
  • 谢谢。我不常来这里,我会去接受答案。对不起。
  • 它似乎无论如何都会加载该父 css 文件,然后在子目录中应用 css 文件。一切正常,无需排队。我不明白大声笑

标签: php css wordpress


【解决方案1】:

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

父级将子 style.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

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

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

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

更好的方法 - 不要使用 root style.css 根本没有必要在根文件夹中使用style.css。 WordPress 唯一严格需要此文件的是读取顶级 cmets 中的主题信息。这个要求意味着style.css 不能被最小化,或者至少是最小化的痛苦。最小化是删除代码文件中的所有空格以减小文件大小的过程。这会降低页面加载速度。

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

【讨论】:

  • 只是为了指出很多主题使用 get_stylesheet_uri 它将首先查看子主题。除了那个好答案。
  • @David 感谢您的关注,我会在回到电脑时进行编辑
  • 感谢你们俩。因此,因为我正在为(woocommerce 的店面)开发一个孩子的主题可能已经入队,这就是为什么我的子目录中样式更改的 css 文件可以工作,即使我什至没有在子目录(根据我对答案的理解)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
  • 2020-07-12
相关资源
最近更新 更多