Añadir hooks a WordPress sin tocar functions.php

No deberías modificar functions.php en tu Wordpress, aquí te presento una mejor forma de hacerlo.

En WordPress, cuando hablamos de hooks nos referimos a puntos clave en ciertas ubicaciones en la ejecución del código donde podemos «engancharnos» (de ahí la palabra «hook» o «gancho en inglés) y colocar nuestras propias funciones para modificar la apariencia o el comportamiento por defecto de WordPress o sus plugins.

Así que con ellos podemos modificar el comportamiento de WordPress o de un Plugin sin tener que modificar su código fuente.

Existe una muy mala práctica, que es tocar el archivo functions.php del tema original para crear estos hooks. ¿Porqué está mal?, porque cuando el tema se actualice es muy posible que pierdas todos los cambios que hayas aplicado.

Entonces, ¿Qué se debe hacer?

Una de las formas más simples de hacer esto bien es usar un plugin que se encargue de manejar estos hooks. Una excelente recomendación es Code Snippets

Este es un plugin presente en el repositorio de WordPress, por lo que la instalación es rápida y limpia.

Una vez instalado tendrás una nueva opción en el menú principal. El plugin trae varios «snippets» (fragmentos de código) de ejemplo y de hecho este plugin nos permite importar y exportar códigos entre nuestras web, por lo que es muy recomendable si estás a cargo del mantenimiento de varios sitios.

Puedes editar alguno de los sugeridos o Añadir uno nuevo

Agregas el título y el código, finalmente defines donde debe ejecutarse.

Algo muy bueno que puede ayudarte enormemente a evitar errores es que si te equivocas al grabar los cambios te advertirá que el código generará problemas en tu web y que por ello no se guardará, permitiéndote revertir los cambios.

Si quieres probar como funciona, te dejo este snippet que te ayudará a traducir cualquier texto presente el WordPress (puedes cambiar «English text» por el texto en quieras cambiar).

//Traducir texto
 add_filter('gettext',  'translate_text');
 function translate_text($translated) {
      $translated = str_ireplace('English text',  'Texto en español',  $translated);
      return $translated;
 }

¿Alguna pregunta?, te leo en los comentarios.

Eric Concha

Eric Concha

Co-Fundador de Zenitx Informática. Con más de 10 años de experiencia ayudando a empresas a mejorar su productividad mediante la automatización usando las tecnologías de la información. ericconcha.com

Deja una respuesta

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