簡體   English   中英

如何僅在頁面上有表單時加載CF7 CSS & JS

[英]How to load CF7 CSS & JS only when form is on the page

我想加快我的網站。 我只想在表單是一頁時加載聯系表單 7 css & js。 我找到了解決方案,但它們對我來說並不是 100%。 為什么? 因為它們是基於我所在的頁面。 我想換一種方式。 我正在使用 gutenberg 創建我的網站,但我不知道表單在哪里。 將來我可能會出現在聯系頁面、主頁或子頁面上。 所以我的想法是只有當表單在頁面中時才加載 css & js。 任何頁面。 那么有什么辦法嗎? 我正在考慮使用簡單的 ACF Checkbox 來做到這一點。 當用戶想要放置 CF7 短代碼/表單時,他需要單擊復選框,例如Website have form 也許有更優雅的方式?

您可以簡單地將所有 Contact Form 7 腳本出列,然后檢查 shortocde。

從您的主題將其添加到您的functions.php:

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 );

我無法使上一個答案中的腳本起作用。

但是以下工作:

function contactform7_dequeue_scripts() {
    $check_cf7 = false;

    if( is_page('contact') ) {
        $check_cf7 = true;
    }

    if( !$check_cf7 ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_style( 'contact-form-7' );
        wp_dequeue_script( 'cf7-conditional-fields' );
        wp_dequeue_style( 'cf7-conditional-fields' );
    }
}
add_action( 'wp_enqueue_scripts', 'contactform7_dequeue_scripts', 77 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM