You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress自定义插件dashboard.js脚本无法执行,求助排查原因

排查WordPress插件中dashboard.js无法生效的问题

根据你提供的信息,PHP日志显示dashboard.js已成功入队,但前端无输出,可从以下几个方向排查:

1. 修复PHP代码的语法错误

你的desha_moulin_enqueue_scripts函数存在未闭合的大括号,外层的if ($hook === 'toplevel_page_desha-moulin-dashboard')语句缺少闭合标记,导致代码结构混乱,可能间接影响脚本的加载逻辑:

// 原错误片段
if ($hook === 'toplevel_page_desha-moulin-dashboard') {
    $script_path = plugin_dir_path(__FILE__) . 'dashboard/dashboard.js';
    if (file_exists($script_path)) {
        wp_enqueue_script('dashboard', plugin_dir_url(__FILE__) . 'dashboard/dashboard.js', array('jquery'), null, true);
        error_log('dashboard.js is enqueued: ' . plugin_dir_url(__FILE__) . 'dashboard/dashboard.js');
} // 仅闭合了file_exists的if,外层hook判断的if未闭合
    wp_localize_script(...);
}

修正后代码:

if ($hook === 'toplevel_page_desha-moulin-dashboard') {
    $script_path = plugin_dir_path(__FILE__) . 'dashboard/dashboard.js';
    if (file_exists($script_path)) {
        wp_enqueue_script('dashboard', plugin_dir_url(__FILE__) . 'dashboard/dashboard.js', array('jquery'), null, true);
        error_log('dashboard.js is enqueued: ' . plugin_dir_url(__FILE__) . 'dashboard/dashboard.js');
    } // 闭合file_exists的if
} // 闭合外层hook判断的if
wp_localize_script('desha-moulin-ajax', 'deshaMoulinAjax', array(
    'ajaxurl' => admin_url('admin-ajax.php'),
    'nonce' => wp_create_nonce('desha_moulin_nonce')
));

2. 避免脚本句柄冲突

dashboard是通用名称,可能与WordPress核心或其他插件的脚本句柄冲突,建议更换为唯一句柄,比如desha-moulin-dashboard:

wp_enqueue_script(
    'desha-moulin-dashboard', 
    plugin_dir_url(__FILE__) . 'dashboard/dashboard.js', 
    array('jquery'), 
    time(), // 开发阶段用time()强制禁用缓存
    true
);

3. 验证脚本是否真正加载

打开浏览器开发者工具(F12),切换到网络标签页,刷新页面后搜索dashboard.js,确认:

  • 状态码为200(成功加载)
  • 响应内容包含你写的console.log代码
  • 若状态码为404,检查路径是否存在权限、URL重写等问题

4. 排除浏览器缓存

开发阶段浏览器常缓存旧脚本,可通过以下方式强制刷新:

  • 按Ctrl + F5(Windows)或Cmd + Shift + R(Mac)强制刷新页面
  • 在wp_enqueue_script中添加动态版本号(如上述代码中的time()),确保每次加载最新文件

5. 检查dashboard.js本身的语法错误

即使console.log在开头,若脚本后续存在语法错误,可能导致整个脚本停止执行。先将dashboard.js简化为仅一行测试代码:

console.log('dashboard.js 已加载');

查看浏览器控制台是否有输出,若仍无输出说明脚本未加载;若有输出,再逐步添加原有代码排查语法问题。


内容的提问来源于stack exchange,提问作者Gautier Chuinard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:11:01