必须用 add_action('wp_enqueue_scripts', 'your_function_name') 注册样式,handle需唯一加前缀,$src须为url而非路径,$ver和$deps不可省略以确保加载顺序与缓存控制。

直接在 header.php 里写 <link> 标签引入 CSS,样式看似能用,但主题一更新就丢、插件样式会冲突、子主题父样式加载顺序错乱——这不是“能用”,是埋雷。
wp_enqueue_style 必须挂到 wp_enqueue_scripts 钩子上
把 wp_enqueue_style() 直接写在 functions.php 顶层,或者塞进模板文件(比如 header.php),函数根本不会执行,浏览器里也看不到对应 <link> 标签。
WordPress 的资源注册机制依赖钩子时机:wp_enqueue_scripts 是唯一安全的前端样式/脚本注册入口。早于它(如 init)环境未就绪;晚于它(如 wp_head) 已输出,PHP 会报 “headers already sent” 错误。
- ✅ 正确写法:用
add_action('wp_enqueue_scripts', 'your_function_name')包裹你的注册逻辑 - ❌ 错误写法:
wp_enqueue_style('my-style', ...)出现在functions.php最外层,或出现在任何模板文件中 - ⚠️ 注意:子主题必须在自己的
functions.php中挂载,不能依赖父主题的钩子(除非父主题显式允许)
handle 名称重复会导致样式静默失效
wp_enqueue_style() 第一个参数 $handle 不是随便起的别名,它是全局唯一的资源 ID。两个地方用了同一个 handle(比如都叫 'bootstrap' 或 'style'),后注册的那个会完全覆盖前一个——没有警告,没有报错,你的 CSS 就是不生效。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- ✅ 建议加前缀:
'mytheme-main-css'、'pluginname-admin-override' - ✅ 检查是否已存在:
wp_style_is('mytheme-main-css', 'enqueued')返回true表示已被加载 - ✅ 替换默认样式(如
'twentytwentyfour-style'):先wp_dequeue_style('twentytwentyfour-style'),再重新wp_enqueue_style()
路径写错 = 404,URL 不是文件路径
$src 参数必须是可访问的完整 URL,不是服务器绝对路径,也不是相对于当前 PHP 文件的路径。常见错误是拼错目录名、漏掉斜杠、或误用 get_stylesheet_directory()(返回服务器路径)代替 get_stylesheet_directory_uri()(返回 URL)。
- ✅ 主题根目录下的
style.css:get_stylesheet_uri() - ✅ 父主题的 CSS(子主题中):
get_template_directory_uri() . '/assets/css/main.css' - ✅ 子主题自定义 CSS:
get_stylesheet_directory_uri() . '/css/custom.css' - ⚠️ 特别注意:
get_template_directory()和get_stylesheet_directory()返回的是服务器路径(如/var/www/.../theme),不能传给wp_enqueue_style()
版本号和依赖项不是可选项,而是关键控制点
$ver 和 $deps 看似可选,但跳过它们会让缓存失控、样式顺序错乱。比如你写了栅格类依赖 Bootstrap,但没声明 array('bootstrap'),那你的 CSS 可能比 Bootstrap 先加载,所有 .col-* 都不生效。
- ✅
$ver推荐用filemtime(get_stylesheet_directory() . '/style.css'),文件一改,URL 后缀自动变,强制刷新缓存 - ✅
$deps必须显式传数组,哪怕为空:array()—— PHP 8+ 下传null或省略会触发警告 - ✅ 媒体类型别忽略:
'print'用于打印样式,'screen'限定仅屏幕设备,避免无谓加载
最易被忽略的其实是依赖链的完整性:子主题要加载父主题样式,不能靠 @import 或手动 <link>,必须用 wp_enqueue_style() 把父主题 handle 当作 $deps 显式声明,否则 WordPress 完全不知道谁该先谁该后。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










