You need to enable JavaScript to run this app. 如何通过PHP禁止GravityForms在WordPress特定页面添加脚本
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP禁止GravityForms在WordPress特定页面添加脚本

解决方案

你之前尝试的remove_filter和wp_deregister_script失效,是因为你提到的这段脚本不属于Gravity Forms独立注册的静态脚本资源,是插件直接挂载到wp_head/wp_footer钩子输出的内联前置代码,没有对应的脚本注册句柄,所以常规的注销脚本方法无法匹配拦截。以下是两种兼容插件更新的可行实现方案:

方案1:使用官方预留过滤器(推荐)

Gravity Forms官方预留了gform_output_hooks_js过滤器专门控制这段脚本的输出,你可以直接在自定义插件或者主题的functions.php文件中添加以下代码,只需修改判断条件匹配你要排除加载的页面即可:

add_filter( 'gform_output_hooks_js', function( $enable_output ) {
    // 自定义排除规则:示例为排除ID为2、5的页面,和slug为'about'的页面
    $excluded_page_ids = [2, 5];
    $excluded_page_slugs = ['about'];
    
    if ( is_page( $excluded_page_ids ) || is_page( $excluded_page_slugs ) ) {
        // 符合排除规则时禁止输出脚本
        return false;
    }
    return $enable_output;
} );

该方案完全基于官方预留接口实现,不会受后续插件版本更新影响,兼容性最优。

方案2:移除插件挂载的输出钩子(适配旧版本)

如果你使用的是较早的Gravity Forms版本,上述过滤器不存在,可直接移除插件挂载的脚本输出钩子实现拦截:

add_action( 'wp', function() {
    // 自定义排除规则,和方案1的规则逻辑一致
    if ( is_page( [2, 5, 'about'] ) ) {
        // 移除Gravity Forms挂载的脚本输出动作
        remove_action( 'wp_head', [ 'GFForms', 'print_hooks_js' ], 10 );
        remove_action( 'wp_footer', [ 'GFForms', 'maybe_print_scripts' ], 10 );
    }
}, 11 );

注意:该钩子的注册优先级必须设置为11,晚于Gravity Forms默认的10级挂载优先级,才能成功移除对应动作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 20:57:01