Cuando empecé a desarrollar un plugin para wordpress, quería hacer un “¿Sabias que…?” muy básico, apenas un widget que pusiera un mensaje de forma aleatoria.
El primer problema no tardo en surgir rápidamente, la mayoría de los tutoriales básicos muestran como sustituir palabras en los post, o hacer algo de post-procesamiento con los post… ¡$%&&! Pero que pasa si lo que quiero es agregar un widget.
Después de buscar, llegue a:
<?php
/*
Plugin Name: Untitled
Plugin URI: http://www.im8bit.com/
Description: Shows a Untitled Widget
Author: Fernando Mora
Version: 0.1
Author URI: http://www.im8bit.com
*/
function i8b_untitled_init() {
register_sidebar_widget('Untitled', 'i8b_untitled_widget');
}
function i8b_untitled_widget($args) {
global $wpdb;
extract($args);
echo $before_widget;
echo $before_title;
echo "Title";
echo $after_title;
echo "Untitled";
echo $after_widget;
}
add_action('plugins_loaded', 'i8b_untitled_init');
?>
Guarda el script anterior en el directorio {instalacion_wordpress}/wp-content/plugins con el nombre untitled.php.
Si deseas tener mas orden puedes crear una carpeta dentro de la carpeta plugins, yo he llamado la mia im8bit, asi que he guardado el archivo en:
{instalacion_wordpress}/wp-content/plugins/im8bit/untitled.php
Este es un simple widget que muestra “Untitled” en el cuerpo y “Title” como su titulo, increíble como parezca el secreto es la función register_sidebar_widget una vez que un plugin “sabe” como dibujar un widget podemos encontrarlo disponible para activarse en “Design”->”Widgets”. Basta agregarlo a alguna de nuestras barras laterales “sidebars” y ya tenemos así un esqueleto básico con el cual comenzar a trabajar.
Cosas importantes a notar:
- Los plugins deben de encontrarse dentro de la carpeta plugins ya sea directamente en ella o en una carpeta bajo ella.
- Los nombres que demos a nuestras funciones deben ser unicos en la instalación de wordpress, es decir, no debe repetirse en ningun otro plugin, de ser asi seremos informados al momento de intentar activar dicho plugin. Por esta razón agrego las letras i8b (im8bit) al principio de la función para dificultar un poco el choque con una función en algun otro lugar.
- La instruccion add_action nos permite crear hooks para nuestro plugin dentro de wordpress, en este caso la funcion i8b_untitled_init será llamada cuando el plugin sea activado o inicializado en la sección plugins.
- Es importante hacer notar que el llamado a la función add_action debe encontrarse fuera del cuerpo de cualquier función para ser encontrada, mientras que el llamado función register_sidebar_widget debe encontrarse dentro del cuerpo de alguna función, en el ejemplo, como ya mencioné es nuestra función de inicialización del plugin.

Post a Comment