首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除联系人表单7页外,如何禁用reCaptcha v3?

除联系人表单7页外,如何禁用reCaptcha v3?
EN

WordPress Development用户
提问于 2020-07-07 12:42:09
回答 4查看 5.7K关注 0票数 2

Contact 7正在将reCaptcha v3脚本加载到网站的所有页面上,这使得网站速度缓慢。所以我使用了下面的脚本,它在两周后运行良好,但是现在它停止工作了,现在它正在加载更多的脚本。为什么会是?

我不想使用额外的插件。

代码语言:javascript
复制
function contactform_dequeue_scripts() {
    $load_scripts = false;
    if( is_singular() ) {
        $post = get_post();
        if( has_shortcode($post->post_content, 'contact-form-7') ) {
            $load_scripts = true;   
        }
    }
    if( ! $load_scripts ) {
        wp_dequeue_script( 'contact-form-7' );
    wp_dequeue_script('google-recaptcha');
        wp_dequeue_style( 'contact-form-7' );
    }
}
add_action( 'wp_enqueue_scripts', 'contactform_dequeue_scripts', 99 );
EN

回答 4

WordPress Development用户

发布于 2020-07-07 17:48:36

我会将dequeue语句放入'if‘中,替换$loadscripts行。不需要设置标志,然后检查标志以退出队列。这可能会简化代码,以便进一步调试。

编辑:建议的代码更正:

代码语言:javascript
复制
function contactform_dequeue_scripts() {
    if (is_singular()) {
        $post = get_post();
        if (has_shortcode($post->post_content, 'contact-form-7')) {
            wp_dequeue_script('contact-form-7');
            wp_dequeue_script('google-recaptcha');
            wp_dequeue_style('contact-form-7');
        }
    }
}
add_action('wp_enqueue_scripts', 'contactform_dequeue_scripts', 99);

只有当CF7有一个短代码,如果它是一个单一页面时,这才是去队列的脚本。否则,事情就会正常进行。更容易读懂代码并弄清楚正在发生什么。

票数 2
EN

WordPress Development用户

发布于 2021-03-04 20:09:56

这对我有用。

代码语言:javascript
复制
function contactform_dequeue_scripts() {

    $load_scripts = false;

    if( is_singular() ) {
        $post = get_post();

        if( has_shortcode($post->post_content, 'contact-form-7') ) {
            $load_scripts = true;
            
        }

    }

    if( ! $load_scripts ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_script( 'google-recaptcha' );
        wp_dequeue_script( 'wpcf7-recaptcha' );     
        wp_dequeue_style( 'wpcf7-recaptcha' );
        wp_dequeue_style( 'contact-form-7' );
        
    }

}
add_action( 'wp_enqueue_scripts', 'contactform_dequeue_scripts', 99 );
票数 1
EN

WordPress Development用户

发布于 2021-04-23 10:54:26

更整洁的版本:

代码语言:javascript
复制
function wpcf7_dequeue_redundant_scripts() {
    $post = get_post();
    if ( is_singular() && !has_shortcode( $post->post_content, 'contact-form-7' ) ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_style( 'contact-form-7' );
        wp_dequeue_script( 'wpcf7-recaptcha' );     
        wp_dequeue_style( 'wpcf7-recaptcha' );
        wp_dequeue_script( 'google-recaptcha' );
    }
}
add_action( 'wp_enqueue_scripts', 'wpcf7_dequeue_redundant_scripts', 99 );
票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/370564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档