Quiero mostrar css y javascript solo cuando se utiliza el shortcode en esa página. Si el código corto no está presente en la página de WordPress, entonces no se deben mostrar los js y css del formulario de contacto. Para eso lo que he hecho es pegar el siguiente código en mi archivo de funciones activas .php de temas.
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
El código anterior elimina totalmente el js y css del complemento de formulario de contacto 7. Lo que necesito es que si se pega el shortcode del formulario de contacto 7, se deben mostrar ambos.
2 respuestas
Aquí está la respuesta a su pregunta. Si no hay un shortcode, se eliminarán css y js del formulario de contacto y si hay shortcode se agregarán css y js.
function rjs_lwp_contactform_css_js() {
global $post;
if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'contact-form-7') ) {
wp_enqueue_script('contact-form-7');
wp_enqueue_style('contact-form-7');
}else{
wp_dequeue_script( 'contact-form-7' );
wp_dequeue_style( 'contact-form-7' );
}
}
add_action( 'wp_enqueue_scripts', 'rjs_lwp_contactform_css_js');
Usas el siguiente código. Puedes agregar tu ID de páginas en este código.
function dvk_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_style( 'contact-form-7' );
}
}
add_action( 'wp_enqueue_scripts', 'dvk_dequeue_scripts', 99 );
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
wordpress
Esta etiqueta es para preguntas específicas de programación sobre el sistema de administración de contenido de WordPress. Las preguntas fuera del tema incluyen las relacionadas con el desarrollo de temas, la administración de WordPress, las mejores prácticas de administración, la configuración del servidor, etc. Estas preguntas se hacen mejor en el sitio dedicado de intercambio de pila de desarrollo de WordPress (https://wordpress.stackexchange.com).