Skip to content


Aprendiendo a desarrollar widgets para wordpress (III)

.. No hay dos sin tres… Así que vamos por la tercera entrega. El propósito al finalizar el artículo anterior era descubrir como añadir un widget en la lista de widgets disponibles, … Pues manos a la obra…… Para ello veamos algunos de los archivos involucrados en la gestión dinámica de widgets en el tema default:  sidebar.php, widgets.php y functions.php.

sidebar.php: En la primera línea de este archivo se llama  a la función “dynamic_sidebar()“,  si ésta existe. Para mostrar los widgets activos. Como solo hay un sidebar definido (en el tema default), no hay que pasarle ningún parámetro. Ésta función devuelve “true” en caso de éxito y “false” en caso contrario.

El uso recomendado de ésta función es el que sigue:

<ul id="sidebar">
 <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
    <li>{static sidebar item 1}</li>
    <li>{static sidebar item 2}</li>
 <?php endif; ?>
 </ul>

Así, en caso de fallo, mostramos un sidebar por defecto o sidebar estático.

Para más información sobre dynamic_sidebar() ver: http://codex.wordpress.org/WordPress_Widgets_Api/dynamic_sidebar.

widgets.php: En este archivo, incluido en el “core” de wordpress desde la versión 2.2 y que lo podemos encontrar en el directorio wp-includes, se define la Api para el desarrollo de widgets. Por supuesto, aquí de define dynamic_sidebar() entre otras. La API completa se puede consultar en: http://codex.wordpress.org/Plugins/WordPress_Widgets_Api.

Además: Es en este archivo donde se definen los widgets que aparecen en la lista de widgets disponibles!!.

functions.php: Este archivo funciona básicamente como un plugin. Se puede usar para definir funciones que llamaremos desde cualquier otro archivos de nuestro tema. Se carga de forma automática durante el proceso de inicialización de wordpress.

En la primeras líneas de este archivo (en el tema “default”), se define el sidebar de este tema con el código siguiente:

if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
));

En el caso del tema “default“, solo se define un sidebar.

Más sobre la función register_sidebar() en: http://codex.wordpress.org/Function_Reference/register_sidebar.

Parece que, functions.php, es  un buen candidato para definir el nuevo widgets.

NO ESTAMOS ACERCANDO A LA SOLUCIÓN.

Solo  nos queda escribir la función del widget en functions.php y usar register_sidebar_widget($name, $callback) para añadir el widget a la lista de widgets disponibles en la interfaz de administración.

El siguiente código es el widget “Hello word” de http://codex.wordpress.org/Plugins/WordPress_Widgets_Api.

function widget_myuniquewidget($args) {
          extract($args);
      ?>
              <?php echo $before_widget; ?>
                  <?php echo $before_title
                      . 'My Unique Widget'
                      . $after_title; ?>
                  Hello, World!
              <?php echo $after_widget; ?>
      <?php
      }
register_sidebar_widget('My Unique Widget','widget_myuniquewidget');

Para finalizar un par de capturas de pantalla:

Editando el archivo functions.php.

editfunctions

Añadiendo el nuevo widget desde la lista de widgets disponibles

widgets

…….

Posted in plugins wordpress, Programación, widgets.

Tagged with , , , .


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.



Ir a la barra de herramientas