如何仅在页面上有表单时加载 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 shortcode/form 时,他需要点击复选框,例如 Website have form
。也许有更优雅的方式?
您可以简单地使所有 Contact Form 7 脚本出队,然后检查短代码。
从您的主题中将此添加到您的 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 );
我想加速我的网站。我只想在表单是页面之一时加载联系表单 7 css & js。我找到了解决方案,但它们对我来说并不是 100%。为什么?因为它们是基于我所在的页面。我想换一种方式。我正在使用 gutenberg 创建我的网站,但我不知道表单在哪里。将来我可能会出现在联系页面、主页或子页面上。所以我的想法是只有当表单在页面中时才加载 css & js。任何页面。那么有什么办法吗?我正在考虑使用简单的 ACF Checkbox 来做到这一点。当用户想要放置 CF7 shortcode/form 时,他需要点击复选框,例如 Website have form
。也许有更优雅的方式?
您可以简单地使所有 Contact Form 7 脚本出队,然后检查短代码。
从您的主题中将此添加到您的 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 );