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

WordPress 6.1.1中wp_dequeue_script无效,如何移除核心自定义JS和CSS?

WordPress 6.1.1 中取消核心脚本队列失效的原因及解决办法

问题原因

WordPress 6.1.1 对脚本加载的时机逻辑做了调整,wp_print_scripts 钩子如今主要用于脚本输出阶段的操作,而核心脚本(比如 jquery-ui-core)的入队操作通常在更早的 wp_enqueue_scripts 钩子中完成。如果仍然用 wp_print_scripts 执行取消队列,时机上已经滞后,导致无法生效。

修正方案

改用 wp_enqueue_scripts 钩子,并设置足够高的优先级(确保高于目标脚本入队的默认优先级),同时可以先判断脚本是否已入队,避免无效操作:

function wpdocs_dequeue_script() {
    // 先确认脚本确实处于入队状态
    if ( wp_script_is( 'jquery-ui-core', 'enqueued' ) ) {
        wp_dequeue_script( 'jquery-ui-core' );
        // 若需要彻底移除脚本注册(防止其他地方重新入队),可加上下面一行
        // wp_deregister_script( 'jquery-ui-core' );
    }
}
// 优先级设为200,确保在默认入队操作之后执行
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_script', 200 );

如果是要在后台(wp-admin)移除该脚本,需要把钩子换成 admin_enqueue_scripts,逻辑保持一致:

function wpdocs_dequeue_admin_script() {
    if ( wp_script_is( 'jquery-ui-core', 'enqueued' ) ) {
        wp_dequeue_script( 'jquery-ui-core' );
    }
}
add_action( 'admin_enqueue_scripts', 'wpdocs_dequeue_admin_script', 200 );

额外说明

  • 部分主题或插件可能会通过依赖关系间接加载 jquery-ui-core,这种情况下仅取消队列可能不够,需要排查依赖链,或者直接注销脚本(即上面代码中注释的 wp_deregister_script 语句)。
  • 测试时建议开启 WP_DEBUG 模式,方便排查脚本加载的相关日志,确认目标脚本的入队时机和依赖情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:27:42