Desarrollo de plugins para wordpress (I)

Worpress es un potente gestor de contenidos con una flexibilidad que le permite hacer casi cualquier cosa. Esa versatilidad se la debe a la capacidad de extender sus funcionalidades básicas mediante un potente sistema de plugins. Es en el desarrollo de estos plugins en lo que nos vamos a centrar de aquí en adelante, ya que conociendo este sistema podremos lograr que nuestro wordpress baje a pasear al perro, o casi.

Como no, como en cualquier tutorial que se precie, vamos a desarrollar nuestro primer plugin mientras vamos explicando los conceptos que nos interesan, los archivos que se vayan creando, estarán disponibles para descarga.


Manos a la obra.

Los plugins en wordpress, se alojan en la ruta /wp-content/plugins, cualquier archivo o carpeta que se coloque bajo esa ruta y cumpla unas características básicas, será detectado automáticamente como un plugin y tratado como tal por nuestro wordpress, por lo que para comenzar crearemos el archivo wgo_articulo_1.php en esta ruta. Como hemos comentado, para que wordpress reconozca un plugin, este ha de tener unos datos básicos en la cabecera del fichero que define al mismo, por lo que abriremos nuestro archivo con el editor que más nos guste --en mi caso notepad++ para windows y Kate para linux-- y le añadiremos las siguientes lineas.
<?php
/*
Plugin Name: Plugin práctica 1
Plugin URI: http://www.whatsgoingon.es/
Version: 0.1
Author: Óscar Andreu Martínez
Description: Plugin como práctica docente.
License: GPL2
*/
?>
Una vez hecho esto, podremos comprobar como nuestro plugin ya aparece en la zona para la administración de plugins.




Administración de los plugins.[/caption] Viendo que vamos por el buen camino y que no ha resultado complicado por ahora, nos queda decidir para que va a servir nuestro plugin. En mi caso, y tras consultarlo con la almohada, he decido que este plugin sirva para contar el número de palabras de un post y mostrarlo al final del mismo. Vamos, que no va a servir para nada útil, pero paciencia, que para eso es el primero. Antes de empezar a tirar líneas de código como locos, nos hace falta comprender como interaccionan los plugins con wordpress.

Interaccionando con Wordpress --Plugin Hooks--

La interacción de los plugins con wordpress se realiza principalmente a través de lo que se denominan plugin hooks. Durante la ejecución de Wordpress, este realiza acciones internas predeterminadas, como por ejemplo: cargar el título de un post. Al ir a realizarse estas acciones, Wordpress comprueba si algún plugin ha registrado acciones adicionales para ser realizadas y ahí es donde entraríamos nosotros. Esto puede hacerse de dos maneras distintas: con add_filter o con add_action. Estos dos métodos nos ofrecen funcionalidades distintas y es importante que sepamos cuando utilizar uno u otro.

La función add_filter()

Los filtros son acciones que se ejecutan para modificar texto antes de guardarlo en la BBDD o mostrarlo por pantalla. La función add_filter es la que va a añadir la función que deseemos a la lista de funciones a ejecutarse antes que esa acción. Para ver la lista de filtros disponibles y la función de cada uno de ellos podemos consultar WordPress Hooks Database. EL uso de add_filter es bastante sencillo, siendo este su uso básico.
add_filter('the_content', 'func_contar_palabras');
Como habíamos decidido que nuestro plugin contara las palabras de un post, tendremos que definir la función func_contar_palabras.
function func_contar_palabras($content)
{
 $num_words = str_word_count($content, 0);
 $content .=  "<p>Este artículo consta de $num_words palabras.";

 return $content;
}
Como antes, podemos comprobar que el plugin esté funcionando correctamente, para ello primero deberemos activarlo desde la administración de plugins y luego abrimos cualquier post y vemos el resultado.





Como podemos observar el funcionamiento es impecable. Hemos logrado mostrar un recuadro de color gris que nos informa del número de palabras del post. Es el momento de pasar a mayores.

La función add_action()

En Wordpress las funciones son acciones que se lanzan durante pasos específicos de la ejecución de Wordpress o cuando ocurren eventos determinados, pudiendo hacer que nuestras funciones se ejecuten llegados a ese punto mediante la función add_action, cuyo uso es similar al add_filter visto anteriormente, por lo que basta con añadir a nuestro ejemplo las siguientes líneas.

add_action('wp_footer', 'func_completar_footer');
function func_completar_footer()
{
 echo "<p><h2 style='background-color:grey;'>Plugin creado por Óscar Andreu.</h2>";
}

Si comprobamos los post ahora, podremos observar como hemos añadido un pie personalizado a todos los artículos.

Conclusiones

Hasta aquí hemos visto los pasos básicos para crear un plugin totalmente inútil. En el siguiente post iremos viendo como darle más funcionalidad a nuestro plugin. Podéis descargar el código de este tutorial desde aquí.

No hay comentarios:

Publicar un comentario