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

移除Google Recaptcha未使用JavaScript的方案不生效,如何解决?

解决方案

  • 第一步:确认recaptcha脚本的正确注册句柄
    你之前使用的google-invisible-recaptcha句柄可能和你网站上实际使用的recaptcha插件注册的句柄不匹配,可临时添加以下代码到主题functions.php文件中,访问首页后即可输出所有已排队脚本的句柄,找到包含recaptcha关键词的对应句柄即可:
add_action( 'wp_print_scripts', 'debug_enqueued_scripts' );
function debug_enqueued_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) {
        echo $handle . '<br>';
    }
}

查到正确句柄后记得删除这段调试代码。

  • 第二步:调整注销脚本的钩子优先级
    默认的钩子优先级为10,可能晚于或早于recaptcha脚本的注册时机,调整优先级为999确保注销操作在脚本注册后执行,参考代码如下(将代码中的占位符替换为实际信息):
add_action( 'wp_enqueue_scripts', 'mytheme_deregister_recaptcha', 999 );
function mytheme_deregister_recaptcha() {
  // 仅在不需要展示验证码的页面执行注销,示例为仅在ID为123的联系页加载验证码,其他页面均移除
  if( !is_page(123) ) :
    wp_deregister_script('替换为你查到的正确recaptcha脚本句柄');
    // 若存在配套的recaptcha样式文件,也可同步注销
    wp_deregister_style('替换为你查到的正确recaptcha样式句柄');
  endif;
}
  • 第三步:处理硬编码插入的recaptcha脚本
    如果上述方案依然无效,说明你使用的recaptcha插件没有采用WordPress官方的脚本注册方式加载,而是直接硬编码输出到页面中,可使用缓冲输出替换的方式移除不需要的脚本,参考代码如下:
add_action( 'wp_footer', 'remove_hardcoded_recaptcha', 1 );
function remove_hardcoded_recaptcha() {
    // 仅在非验证码需要页面执行替换
    if( !is_page(123) ) {
        ob_start(function($html) {
            return preg_replace('/<script[^>]*recaptcha[^>]*><\/script>/i', '', $html);
        });
    }
}
  • 注意事项
    所有代码修改完成后,需要清空WordPress缓存、CDN缓存、浏览器缓存后再重新使用Page Speed Insights检测,避免缓存导致的结果不准确。

内容的提问来源于stack exchange,提问作者Maria Ines Mc Loughlin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:39:05