En anteriores entregas hemos estado introduciendo los Frameworks y los Child Themes para explicar brevemente lo que son y para que sirven.
Estuvimos comentando que una de las ventajas de utilizar un Framework es que podíamos modificarlo de una manera duradera, incluso resistente a futuras actualizaciones, y también vimos que la manera de conseguir esto era creando una Plantilla Hija.
Bien aquí es dónde entran los Action Hooks. De manera muy resumidada podemos decir que un Action Hook (un gancho para Accionar) es una función (en PHP) vacía. Recordemos que una función en php tiene esta pinta,
<?php function bastante_basico() {
// Vamos a saludar
echo'HOLA Mundo';
} ?>
En el código dentro de nuestro tema tendríamos esta llamada
<?php bastante_basico() ?>
Si alguna vez por curiosidad habéis echado un vistazo al código de un Tema WordPress entonces seguro que ya los habéis visto, wp_head() y wp_footer() son dos Action Hooks.
¿ Y para que sirve tener funciones vacías en un Tema ?
Pues muy fácil, sirven para poder incluir algo en dicho Tema, cómo por ejemplo otras funciones que escribamos, llamadas a Plugins, fantásticos carruseles de imágenes que usan JQuery etc.. etc.. Es una manera muy poderosa de influir y modificar nuestro Tema.
Para entenderlo mejor vamos a considerar un ejemplo real. Para ello usaremos un Framework que fue uno de los pioneros en implementar esta técnica y que ya citamos anteriormente, se trata de Thematic. Si tenéis algo de tiempo vale la pena pasarse por su foro de usuarios (en inglés), dónde encontraremos cantidad de ejemplos y soluciones sobre cómo intervenir mediante Action Hooks. Es una fuente inagotable para aprender. Vamos a suponer que queremos insertar un mensaje de bienvenida justo debajo de la cabecera de nuestro blog.
Para poder hacer esto necesitamos saber a que Action Hook tenemos que “engancharnos” para que salga nuestro mensaje. Esto habitualmente lo encontraremos en la documentación de nuestro Framework preferido. En el caso que nos ocupa miremos dónde está:
Lo que vemos en el pantallazo, es el Tema thematic en su aspecto por defecto, en el cual los desarrolladores han sobrepuesto en rojo todos los Action Hooks que han creado para que nosotros los podamos utilizar. ¿ Genial no ?
Cómo queremos insertar un mensaje de bienvenida debajo de la cabecera, vamos a utilizar el Action Hook thematic_belowheader()
Previamente habremos creado un Child Theme. En nuestro directorio /wp-content/themes/Miplantillasuperchula/ crearemos un fichero functions.php. (en la inmensa mayoría de los Frameworks este es el fichero que se usa). Es en este fichero functions.php dónde pondremos todo nuestro código (el código está comentado para ver lo que estamos haciendo).
<?php // Empezamos creando nuestra función
function mensaje_de_bienvenida(){
// Queremos que salga el mensaje sólo en la página de inicio
// y unicamente si no es la 2,3,4...?>
<?php if (is_home() & !is_paged()) {?>
<!-- aquí empieza el mensaje -->
<div id="bienvenida">
Bienvenidos a <?php bloginfo('name'); ?>.
</div>
<!-- fin de de nuestro mensaje de bienvenida -->
<?php }
} // Aquí termina nuestra función
//Ahora vamos a engancharla a nuestro Action Hook
add_action('thematic_belowheader','mensaje_de_bienvenida');?>
Este será el resultado que obtendremos tras aplicar un poco de formato con el CSS para que se vea mejor.
Cómo vemos hemos conseguido modificar el aspecto de nuestra plantilla Madre sin sobrescribir dicha plantilla y eso mediante el uso de un Child Theme y de un Action Hook. Este ejemplo es a la vez muy simple pero nos da una buena idea de lo que podemos llegar a hacer desde el punto de vista del diseño.



Pingback: [PressWork] ¿ Cómo quitar el Author Box ? | SocialTotal
Pingback: [PressWork] Localizar y utilizar los Action Hooks (o ganchos) | SocialTotal
qué crack! es la mejor explicación que he visto para modificar los hooks de Thematic en español, mil gracias!!
Gracias Daniel, me he inspirado parcialmente en uno de los tutoriales de Ian (el creador de Thematic) ya que siempre me han parecido muy didácticos.
Es una pena que Thematic esté bastante parado desde que Ian se fue a trabajar para automattic, aunque hay una comunidad muy fuerte detrás y parece que algún proyecto para darle continuidad. Yo aprendí mucho con este Framework, estaría realmente bien que tuviese futuro, y de paso que lo re-escribieran en html5 (puestos a pedir
Un saludo
Muy bueno. Gracias.