Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.
Optimizar carga scripts y css contact form 7 y recaptcha
30 octubre, 2023
Aunque nos gusta mucho como funciona el plugin Contact Form 7, no todo es perfecto. Por defecto carga todos sus scripts y estilos en todas las páginas del sitio wordpress.
Podemos forzar a que sólo cargue su código cuando hay un formulario presente en la página o en el post. Tanto en el editor de WordPress o si es un campo de Advanced Custom Fields.
También hemos tenido en cuenta la integración recaptcha que ayuda a minimizar el spam que recibimos.
El siguiente código puedes copiarlo al final del archivo functions.php de tu tema activo, o de su child theme. Si no utilizar ACF puedes eliminar la variable $shortcode_formulario y su condición. Y si utilizas ACF solo tendrás que sustituir el valor get_field(‘shortcode_formulario’,$post) por el nombre del campo que utilizas para tus formularios de CF7.
// Optimización Contact Form 7
function contactform_dequeue_scripts() {
$load_scripts = false;
if( is_singular() ) {
$post = get_post();
$shortcode_formulario = get_field('shortcode_formulario',$post);
if( has_shortcode($post->post_content, 'contact-form-7') ) {
$load_scripts = true;
}
elseif( $shortcode_formulario ) {
$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( 'contact-form-7' );
wp_dequeue_style( 'wpcf7-recaptcha' );
}
}
add_action( 'wp_enqueue_scripts', 'contactform_dequeue_scripts', 99 );
Este ajuste mejorará el rendimiento y la velocidad global del sitio.