Widgetizando nuestro tema

Si estamos diseñando nuestro tema para WordPress, tarde o temprano tendremos que decidir si le añadimos o no la capacidad para usar ‘widgets’ (palabra que se podría perfectamente intercambiar por ‘gadgets’, o ‘artilugios’).

Como sabéis, los temas que tienen activada la posibilidad de usar widgets pueden, normalmente en la barra lateral, alojar, cambiar, añadir y quitar todas esas funcionalidades extra que pimientan nuestro blog, sin tener que descender a los archivos para escribir código :

  1. Artículos Recientes
  2. Comentarios Recientes
  3. Búsqueda
  4. Lista de Links
  5. Lista de Categorías
  6. Lista de Páginas
  7. etc.

Con el sistema de widgets funcionando, vamos a ir simplemente al Panel de Administración y añadiremos, a esos distintos espacios que hayamos habilitado, los widgets de nuestro interés.

Modificando functions.php

Abriremos (o crearemos, caso de que no lo tuviéramos aún) functions.php, y pondremos ahí el siguiente código :

//Widgets

if ( function_exists('register_sidebar') )
{

 register_sidebar
    (   array
        (
          'name' => 'Barra Lateral',
          'before_widget' => '<div class="widget">',
          'after_widget' => '</div>',
          'before_title' => '<h3 class="widgettitle">',
          'after_title' => '</h3>',
        )
    );

 register_sidebar
    (   array
        (
          'name' => 'Pie de Página',
          'before_widget' => '<div class="widget">',
          'after_widget' => '</div>',
          'before_title' => '<h3 class="widgettitle">',
          'after_title' => '</h3>',
        )
    );
}

Muy importante : no nos olvidemos de abrir y cerrar nuestro functions.php con los clásico tags de PHP :

<?php

// código aquí

 ?>

Nuestro ejemplo concreto

En nuestro ejemplo hemos preparado a WordPress para entender que nuestro tema tendrá, en la barra lateral y en el footer, espacio para widgets.

Ahora tendremos que dirigirnos a ambos archivos (sidebar.php y footer.php), y añadir el siguiente código :

Para la Barra Lateral :

<?php if ( !function_exists('dynamic_sidebar')
        || !dynamic_sidebar('Barra Lateral') ) : ?>
<ul><?php wp_list_categories('title_li=<h3>Categorías</h3>'); ?></ul>
<?php endif; ?>

Para el Pie de Página :

<?php if ( !function_exists('dynamic_sidebar')
        || !dynamic_sidebar('Pie de Página') ) : ?>
<ul><?php wp_list_pages('title_li=<h3>Páginas</h3>'); ?></ul>
<?php endif; ?>

En ambos casos, siempre que no hayamos instalado aún los widgets (lo cual va bién para cuando ofrecemos el tema a un usuario, para que no se encuentre esas secciones vacías), vamos a ver en esos espacios categorías y páginas listadas por defecto, que desaparecerán cuando posteriormente, a través de la Administración, definamos por nosotros mismos que es lo que ahí debe aparecer.

Del mismo modo, en functions.php hemos especificado las clases que eventualmente nos van a servir para formatear las listas y sus encabezados : anchura, fondos, items de lista … etc.

Esperamos que os haya gustado este tutorial, y que aprovechéis al máximo el potencial que los widgets de WordPress nos ofrecen.

Comentarios
  1. Hola. Muy buen post. He resuelto este problema, el cual llevo bastante tiempo tratando de resolver. Ahora solo necesito saber porque los widgets se me muestran en el footer y no en el sidebar. Aclaro que mi tema no tiene programado un sidebar.
    Le agradecería me respondiera. Muchas Gracias

    Escrito el25/05/2013

DEJA TU COMENTARIO