WordPress主题开发报错:Undefined constant 'all' 求解决及新版教程
问题解决与现代WordPress主题开发建议
错误修复
出现Undefined constant "all"致命错误,是因为你在wp_enqueue_style的第五个参数中直接写了all——PHP会将无引号的标识符视为常量,而这个常量根本不存在,所以触发错误。正确做法是把all作为字符串传入,添加单/双引号。
另外,你用wp_enqueue_style加载Font Awesome的JS Kit是错误的,JS文件必须用wp_enqueue_script来加载,否则可能导致资源加载异常。
修正后的完整代码:
<?php // 添加CSS和JS文件 function cm_setup() { // 加载Google字体 wp_enqueue_style('google-fonts', '//fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); // 加载Font Awesome JS Kit(改用wp_enqueue_script) wp_enqueue_script('fontawesome', '//kit.fontawesome.com/a8cbd25639.js', array(), null, true); // 加载主题样式表,修正media参数为字符串'all' wp_enqueue_style('style', get_stylesheet_uri(), NULL, microtime(), 'all'); // 加载主题JS文件 wp_enqueue_script('main', get_theme_file_uri('/js/main.js'), NULL, microtime(), true); } add_action('wp_enqueue_scripts', 'cm_setup');
贴合当前WordPress版本的开发建议
- 严格遵循函数参数规则:
wp_enqueue_style的第五个参数$media要求传入字符串,除了'all',还支持'screen'、'print'或自定义媒体查询字符串,必须用引号包裹。 - 资源加载规范:
- CSS文件用
wp_enqueue_style,JS文件用wp_enqueue_script,绝对不能混用。 - 版本号用
microtime()可以强制刷新浏览器缓存,适合开发阶段;上线后建议改用主题版本号,比如wp_get_theme()->get('Version'),更稳定。
- CSS文件用
- 教程选择建议:
- 优先看WordPress官方文档,内容随版本实时更新,能保证参数和用法的正确性。
- 选教程时尽量挑近2-3年的,避免用2019年这类过时内容——现在WordPress的主题开发已经融合了区块编辑器(Gutenberg),旧教程可能完全没涉及这块的兼容。
- 开发时遵循WordPress编码规范,比如函数命名用小写加下划线、注释清晰,后续维护会省心很多。
内容的提问来源于stack exchange,提问作者Cameron Mansker
相关产品推荐
相关产品推荐

