Descubre en este tutorial cómo conseguir que los scripts de un plugin de WordPress se carguen solo en determinadas páginas usando un poco de código.
Una de las ventajas de WordPress es que sus funcionalidades se pueden extender casi hasta el infinito mediante plugins.
Esto está genial pero cada plugin puede añadir sus propios scripts (y/o estilos), lo cual significa que puedes acabar con una instalación de WordPress que carga +15 scripts.
Hay plugins que gestionan muy bien sus recursos y solo los cargan en la página donde se usan, pero hay otros que no lo hacen (por desconocimiento o porque no pueden saber dónde se usarán) y cargan los scripts en todas las páginas.
Por eso, si quieres mejorar el rendimiento de tu web, puedes controlar que los scripts se carguen solo en algunas páginas, por ejemplo las que tienen más tráfico.
En otro tutorial viste cómo evitar que los scripts se carguen en alguna página, pero en este caso te voy explicar cómo conseguir lo contrario. Es decir, cómo evitar que se carguen por defecto en todas la páginas y elegir en cuales si lo harán.
Vamos a ver cómo conseguirlo:
Pasos cargar los scripts de plugins solo en determinadas páginas
1. Identifica el script
Lo primero que tienes que hacer es identificar el script del plugin, ya que para evitar que cargue tienes que conocer el nombre del mismo.
Hay varias formas de saber qué scripts se están cargando en una página, pero una de las más sencillas es usar el inspector del navegador.
Dependiendo de cuál uses podrás encontrarlo en distintos apartados. En Firefox está en la sección «Red» y en Safari en la de «Fuentes».
Ahí verás los distintos scripts que se están cargando. De hecho, si mantienes el ratón encima del nombre verás que te indica la ruta desde la que se está cargando. Así que, entre una cosa y otra es sencillo saber cuál el es plugin responsable de cargar el script.
Pero todavía te queda un paso porque lo que necesitas es conocer el nombre con el que se registró el script, que no necesariamente es el mismo que el del archivo que lo carga.
Por ejemplo, al mantener el ratón encima del fichero dismiss.js, la ruta indica que se encuentra dentro de /plugins/genesis-blocks/. Así que lo más sencillo es abrir esa carpeta con tu editor de código habitual y hacer una búsqueda de ese nombre.
Lo normal es que te encuentres algo similar a esto:
// Load the dismissible notice js.
wp_enqueue_script(
'genesis-blocks-dismiss-js',
plugins_url( '/dist/assets/js/dismiss.js', dirname( __FILE__ ) ),
array(),
filemtime( plugin_dir_path( genesis_blocks_main_plugin_file() ) . '/dist/assets/js/dismiss.js' ),
true
);
Es decir, una función dentro de la cual se utiliza wp_enqueue_script
. El primer parámetro dentro de wp_enqueue_script
es el que contiene el nombre que necesitas, en este ejemplo genesis-blocks-dismiss-js
.
2. Evita que se cargue el script
Ahora que ya conoces el nombre con el que se registró el script, añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 1921 snippets de esta web,
identifícate o suscríbete aquí.
Puedes añadir tantos scripts como quieras, solo tienes que asegurarte de que utilizas el nombre con el que se registró el script.
3. Carga el script de forma condicional
Con el paso anterior te aseguras de que el o los scripts no se cargan en todas las páginas. Ahora tienes que conseguir que se carguen en las páginas que tú quieras.
Para ello, añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 1921 snippets de esta web,
identifícate o suscríbete aquí.
En el segundo condicional tendrás que sustituir:
plugin-2-script-name
por el nombre del scriptplugin-2-name
por el nombre de la carpeta del plugin
Y en ese ejemplo solo se cargará el segundo script en la página del blog porque usas is_home, pero puedes modificarla por otra etiqueta condicional (is_page()
, is_archive()
…).
Es solo un ejemplo que puedes modificarlo para que cumpla tus necesidades.
Nota: Solo te recomiendo usar esta estrategia cuando estés seguro de que ese script no es necesario para el correcto funcionamiento de otras páginas. Si no, te recomiendo usar la estrategia del tutorial que te comentaba al inicio.
Conclusiones
¿Quieres controlar que algunos scripts de plugins se carguen solo en determinadas páginas? Ahora ya sabes cómo hacerlo con un poco de código.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉