![](/img/trans.png)
[英]Javascript only - Conditional options not hiding on second iterant in CF7 form
[英]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.