Imagen FeedAyuda WordPress | Código Fuente de WordPress para iPhone disponible

Publicado por Fernando Tellado | 15 Mayo 2008

Como crear un Plugin de Widgets para el Sidebar en WP 2.5

Wordpress 2.5 y los Widgets

Un Widget de WordPress es un elemento dinámico que puede situarse en las barras laterales (sidebars) de tu plantilla del blog. Un widget puede ser una pequeña muestra de código HTML también.

Los Widgets hacen mas flexibles los Plugins

Si escribes un plugin como widget tus usuarios serán mas capaces de mover tu plugin a donde quieran, colocándolo entre el resto de widgets. Esto es genial para los usuarios menos avanzados y ayudará a popularizar tu plugin recién creado.

Las barras laterales no son solo barras laterales

Aunque se llaman barras laterales también pueden ser cualquier bloque de la página. Una barra lateral puede ser una cabecera, el pié de página, incluso una sección de la página, lo que quieras. Además, es muy fácil "declarar" una barra lateral. Normalmente se declaran en el archivo functions.php.

Declarando tus barras laterales - Dentro de una plantilla

Por ejemplo, en una plantilla de 3 barras laterales, con las típicas a izquierda y derecha mas una superior, en el fichero functions.php se vería esto:

PHP:
  1. register_sidebar(array( 'name'=>'top_sidebar', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', )); register_sidebar(array( 'name'=>'left_sidebar', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', )); register_sidebar(array( 'name'=>'right_sidebar', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', ));

La documentación básica para registrar barras laterales está aquí. El nombre=>top_sidebar’ dice a Wordpress como llamo a mi barra lateral. Este nombre es el qeu se mostrará en tu panel de "Diseño -> Widgets", en la lista desplegable de los mismos. También puedes usar este nombre para situar los widgets de la barra lateral en tu plantilla. Los usuarios van a poder elegir añadir widgets a cualquiera de las barras laterales "declaradas". Los before_widget, after_widget, before_title, y after_title especifican html que va con el widget. Esto es muy útil para aplicar estilos a los widgets y que se adapten a tu plantilla.

Usando Dynamic Sidebars en tu plantilla

Para usar tus barras laterales en la plantilla debes llamar a la función dynamic_sidebar. Se hace así:

PHP:
  1. <?php if (function_exists('dynamic_sidebar')) { dynamic_sidebar('right_sidebar'); } ?>

Esto dice a Wordpress que llame a las funciones que muestran los widgets que se añadan a, en este caso, la barra lateral llamada ‘right_sidebar’.

Un gancho en el que colgar tu Widget

Necesitarás decir a Wordpress algo acerca del widget de tu plugin. Para hacerlo declara la acción “plugins_loaded” así:

PHP:
  1. function mycoolplugin_loaded()
  2.     {
  3.         $widget_ops = array('classname' => 'misuperplugin_widget', 'description' => "Widget super para tu barra lateral." );
  4.         wp_register_sidebar_widget('misuperplugin_widget', 'SuperPlugin', 'misuperplugin_widget', $widget_ops);
  5.     {
  6.     add_action('plugins_loaded','misuperplugin_loaded');

En el widget debes reemplazar "misuperplugin" con el nombre que tenga tu plugin, claro está. Y la descripción también es cosa tuya.

El código para mostrar tu Widget

En el código anterior especificamos misuperplugin_widget como la función de llamada que WordPress usará cuando quiera mostrar tu widget. Así que tendremos que declarar esta función y utilizarla par generar el código HTML de nuestro widget.

PHP:
  1. function misuperplugin_widget($args) { extract($args); // extracts before_widget,before_title,after_title,after_widget echo $before_widget . $before_title . 'SuperPlugin' . $after_title . "<ul>"; for ($i=0; $i&lt;10; $i++) { echo "<li>Elementos $i</li>"; } echo "</ul>" . $after_widget; }

Este widget solo mostrará un encabezado llamado “SuperPlugin” y luego una lista de 10 elementos. Por supuesto, debes hacer el tuyo mucho mas completo, pero eso ya es cosa tuya.

Gracias

También te puede interesar:

Compartir en: Comparte este artículo en menéame menéame Agregar a tus favoritos de del.icio.us Del.icio.us Comparte este artículo en Fresqui Fresqui Agregar a tus favoritos de Technorati Technorati Wikio Wikio Votar Bitacoras

Escribe un comentario




XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

LO ÚLTIMO EN LOS FOROS

Loading...