WordPress主题开发:functions.php中enqueue函数未调用,样式表未加载
解决WordPress主题中wp_enqueue_scripts钩子未触发、样式表无法加载的问题
我之前开发第一个WP主题时也踩过一模一样的坑!别慌,咱们从最常见的原因开始排查:
首先检查header.php里的
wp_head()函数
这是最容易忽略的核心点!WordPress的wp_enqueue_scripts钩子是通过wp_head()来输出队列中的样式和脚本的。你必须在主题的header.php文件里,</head>标签的紧前面加上这段代码:<?php wp_head(); ?>没有这个函数,哪怕你的enqueue代码写得再规范,资源也不会被输出到页面里。
确认当前激活的是你开发的主题
别笑,我当初就犯过这个低级错误——在测试主题里改了半天functions.php,结果后台激活的还是默认主题!去「外观 → 主题」页面确认一下你的主题处于激活状态。检查style.css的主题头部注释是否合规
WordPress对主题根目录的style.css有硬性要求:开头必须包含标准的主题信息注释,否则系统可能识别不了这个主题,导致get_stylesheet_uri()无法正确指向文件。注释格式参考:/* Theme Name: 我的第一个WP主题 Description: 自定义开发的测试主题 Version: 1.0 Author: 我的名字 */没有这段注释,甚至可能连主题都无法在后台正常显示。
排查代码或插件冲突
- 先暂时禁用所有插件,测试样式能不能加载。如果可以,再逐个启用插件,找到冲突的那个。
- 检查你的functions.php里有没有其他代码修改了
wp_enqueue_scripts钩子,比如用了remove_action,或者给add_action设置了极端优先级(比如优先级设为9999,被其他更早执行的代码覆盖了)。
调试函数是否真的被调用
可以给你的函数加个调试标记,确认它有没有被触发:function addExternalStuff(){ // 输出到PHP错误日志,或者直接echo(echo会在页面顶部显示内容) error_log('addExternalStuff函数已执行!'); wp_enqueue_style('style', get_stylesheet_uri()); } add_action('wp_enqueue_scripts','addExternalStuff');然后查看PHP错误日志,或者直接看页面源码里有没有这段日志内容,判断函数是否真的没被调用。
清空缓存再测试
如果你的站点用了缓存插件(比如WP Rocket)或者服务器端缓存,修改后的代码可能不会立即生效。先清空所有缓存,再刷新页面看看。
内容的提问来源于stack exchange,提问作者auto
相关产品推荐
相关产品推荐

