WordPress: Evitar que Contact Form 7 cargue en todas las páginas

Contact Form 7 es un plugin para WordPress bastante útil y personalizable que permite incluir un formulario de contacto en la página que deseemos. Sin embargo, tiene un inconveniente: por defecto, al activarlo, el código Javascript y el código CSS de este plugin cargan en todas las páginas, incluso en las que no se muestra ningún formulario de contacto.

De más está decir que esto hace que nuestra web se haga más pesada de forma innecesaria. Lo ideal es que el código del plugin cargue únicamente cuando corresponda.

Contact Form 7 registra y carga el código Javascript y CSS de forma predeterminada. Lo hace a través de las funciones wp_register_scriptwp_enqueue_script para el código Javascript y con wp_register_style y wp_enqueue_style para el CSS. Parecería que la única forma de evitar la carga es editando el plugin, pero por suerte no es así.

WordPress dispone de las funciones wp_deregister_scriptwp_deregister_style que usadas con los filtros adecuados, permiten evitar la carga de scripts que ya habían sido registrados anteriormente.

Entonces, si queremos hacer que no carguen los scripts de Contact Form 7 debemos agregar a functions.php

Recordemos como funcionan los filtros. Se utiliza la función add_action cuyo primer parámetro es el nombre de la acción a la que se vinculará la función que aparece a continuación. El segundo parámetro es el nombre de la función y el tercero es una prioridad. El 100 simboliza un número alto, de manera de estar seguros que primero se cargarán los scripts del plugin y luego sí, se ejecutarán los filtros para quitarlos.

La primera función es para quitar el Javascript. Se utiliza wp_deregister_script a la que se le pasa por parámetro el nombre con el que el plugin registró el script. Previamente, verificamos que la página que esté cargando no sea la de contacto, en la que sí necesitamos que cargue. La condición en el if chequea esto utilizando el slug de la página que corresponde, que en este caso se llama ‘contacto’.

La segunda función sigue la misma lógica pero utiliza wp_deregister_style, para el CSS.

 

Soy programador web y me desempeño como Líder Técnico en Polar Bear Development. Trabajo con tecnologías como PHP, Javascript, MySQL y HTML5 para el desarrollo de sitios y sistemas web. Me especializo en Zend Framework 2 y otros frameworks MVC, como también en WordPress y otros CMS. Lidero equipos de desarrolladores trabajando con Scrum. Vivo en Buenos Aires, Argentina.
 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


*