Yo ya he creado alguna vez un plugin para Wordpress, pero nunca he hecho una entrada sobre como crearlo. En esta entrada vamos a crear un plugin para Wordpress sencillo para empezar con algo básico facil de entender.
Nuestro plugin será sencillo. Simplemente sustituirá [abbr="Descripción"]Palabra[/abbr] por <abbr title="Descripción">Palabra</abbr>. Además añadirá unas pocas lineas de CSS a la página para que se vea todo correctamente.
Esto no es más que una pequeña implementación de BBCode. Siguiendo este ejemplo literalmente podremos añadir más elementos a nuestros post fácilmente. Si le echamos más imaginación podremos crear cualquier plugin.
El código.
Cabecera.
Todos los plugins en Wordpress al igual que los themes deben tener una cabecera que contendrá la información básica del plugin.
-
/*
-
Plugin Name: GoodABBR
-
Plugin URI: http://wordpress.org/extend/plugins/good-abbr/
-
Description: Make more easy to add abbreviations and descriptions to post
-
Author: Victor Falcon
-
Version: 1.0
-
Author URI: http://www.guiabreve.com/
-
*/
-
-
/*
-
en_EN
-
To add a abbreviations top post use [abbr="Description"]Word[/abbr]
-
es_ES
-
Para añadir una abreviatura en nuestros post usaremos [abbr="Descripcion"]Palabra[/abbr]
-
*/
Lo imprescindible es el primer bloque de comentarios donde está el Nombre del Plugin, la URL del mismo, una pequeña descripción. Nombre del autor, versión del plugin y URl del autor.
El resto son unas cuantas instrucciones extras para su uso.
La magia. Sustituyendo nuestro tag.
Ahora toca crear la función que hará que todos la sustitución de la que hablamos arriba. Tenemos que hacer que todos los [abbr="Descripción"]Palabra[/abbr] de las entradas pasen a <abbr title="Descripción">Palabra</abbr>.
En la función simplemente usamos preg_replace() para remplazar en el texto de la entrada nuestro tag por el código html correspondiente.
La clave esta en la última linea. Lo que hacemos es usar el metodo filtros que nos da Wordpress con el que modificamos la información mostrada por pantalla. En este caso modificamos la función the_content que es la que contiene el texto de las entradas.
-
// Search and Replace in posts
-
function search_abbr ($content = '') {
-
return preg_replace('/\[abbr="(.*?)"\](.*?)\[\/abbr\]/', '<ABBR class="goodabbr" title="$1">$2</ABBR>', $content);
-
}
-
add_filter('the_content', 'search_abbr');
Dejando lo bonito. Añadiendo algo de CSS.
La mayoría de los navegadores tratan correctamente los abbr y los muestran bastante bien pero otros no. Por estos navegadores añadimos esta pequeña hoja de estilo que nos asegura que se vean correctamente en todos los navegadores.
Simplemente hemos creado una función que contiene las 3 lineas que añadiremos en la cabecera del blog. Luego usando add_action las añadimos en la función wp_head.
-
<?php
-
// Adding the style to make it more awe... [wait] ...some!
-
function add_style() { ?>
-
<style type="text/css" media="screen">
-
.goodabbr{cursor: help;border-bottom: 1px dotted #333;}
-
</style>
-
<?php }
-
add_action('wp_head', 'add_style');
-
?>
Es importante que usemos nombres de funciones originales para que no se repitan en otros plugin ya que nos podría dar problemas al tener varios plugins instalados. También, recordad que en el Codex de Wordpress podréis encontrar mucha información que os será de ayuda.
Espero que os sirva de ayuda para comenzar a hacer pruebas y crear vuestros propios plugins. Aqui os dejo el código completo del plugin para que hagáis pruebas.
En los próximos días intentaré publicar como subir nuestro plugin al Directorio de plugins de Wordpress.