WordPress主题开发中wp_enqueue_script无法加载JS文件问题
问题定位
你的JS加载失败是代码里两个错误导致的:
- 脚本路径后缀写错:注册
KYT-admin-js时填的文件路径是/js/admin.css,指向的是CSS文件而非JS文件,自然无法加载对应JS - 依赖句柄不符合WordPress规范:WordPress内置jQuery的注册句柄为全小写
jquery,你写的首字母大写jQuery是无效依赖名,会导致脚本入队流程异常
另外你写的空if判断没有实际作用,目前的逻辑是所有后台页面都会加载这两个资源,不会仅在你的自定义菜单页KYT加载。
修正后可正常运行的代码
function KYT_admin_scripts($dir) { // 非自定义KYT顶级菜单页面直接返回,不加载对应资源 if('toplevel_page_KYT' != $dir){ return; } wp_register_style('KYT-admin', get_template_directory_uri() . '/css/admin.css', array(), '1.0.0', 'all'); wp_enqueue_style('KYT-admin'); // 修正路径后缀+jQuery依赖句柄 wp_register_script('KYT-admin-js', get_template_directory_uri() . '/js/admin.js', array('jquery'), null, true); wp_enqueue_script('KYT-admin-js'); } add_action('admin_enqueue_scripts', 'KYT_admin_scripts');
补充排查项
如果替换代码后仍无法加载,依次检查:
- 主题目录下的
js文件夹内确实存在admin.js文件,文件名大小写、路径和代码里填写的完全一致 - 没有其他代码提前注销了WordPress内置的jquery依赖,也没有手动修改过WP核心的jquery注册逻辑
内容的提问来源于stack exchange,提问作者Khaled Altarhoni
相关产品推荐
相关产品推荐

