19 febrero 2010

Agregando widgets en WordPress a otro lugar que no sea el sidebar

Se pueden agregar widgets en WordPress a otro lugar que no sea la sidebar?
Sí que se puede. Para hacerlo, hay que modificar el archivo "functions.php" del theme que estemos usando, y donde existe un código similar a éste:
register_sidebar(array(
'name' => 'Sidebar 1',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));

Agregamos un par de líneas para que quede así:

register_sidebar(array(
'name' => 'Sidebar 1',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
//La home también va a tener widgets ahora...
register_sidebar(array(
'name'=> 'Homepage',
'id' => 'homepage',
'before_widget' => '<div class="widget_box">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));

Luego, vamos al archivo "index.php" de nuestro template y donde queramos agregar los widgets ponemos

<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Homepage') ) :
endif; ?>

y listo! Con este ejemplo agregamos una nueva zona en la Home page de nuestro blog para poner widgets. Ahora solo queda ir a las opciones de Apariencia dentro del administrador y mover los widgets que queramos a su correspondiente zona. Hasta la próxima!

16 febrero 2010

Haciendo funcionar la propiedad CSS :hover en IE

Bueno, después de varias horas tratando de solucionar un problemita del trabajo con un sitio en WordPress, me enteré gracias a Bernie Zimmerman que para que el Internet Exporer (versiones IE7 e IE8) le agregue un :hover por CSS a otra cosa que no sea un enlace (un tag "a"), hay que agregarle un DOCTYPE especial. Resulta que el DOCTYPE de una página indica que tipo de soporte CSS brinda el navegador. Asi que si uno quiere agregarle :hover a cualquier elemento y no solamente a los enlaces, hay que agregarle un "strict DOCTYPE" a la página. Por ejemplo:

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"

Pero tampoco termina ahí! Porque lo que conviene es que esta línea sea la primera dentro del documento html, porque sino el IE tampoco la tiene en cuenta y sigue funcionando en el "quirks mode" en lugar del modo standard.