Los Widgets son pedazos de contenido administrables desde el backend (Apariencia > Widgets), estos se almacenan en espacios conocidos como ‘Sidebars Dinámicos’.
En este tutorial aprenderas como implementar Sidebars Dinámicos (Widgets) en tu theme de WordPress.
Registrando el Sidebar
El proceso es sencillo, lo unico que tenemos que hacer es colocar la función register_sidebar() en el fichero functions.php de nuestro theme.
Esta función acepta como parametro un Array en el cual se especifican los detalles del Sidebar:
- name: El nombre del Sidebar, por defecto es ‘Sidebar’.
- id: El id del sidebar (ej: sidebar-derecha), por defecto es el ID numerico auto-generado.
- description: Texto de descripcion del sidebar a registrar, se muestra en la pagina de Widgets, por defecto esta vacio
- class: Clase CSS a asignar a los widgets de este Sidebar.
- before_widget: Código HTML que ira antes de cada widget, por defecto es <li>
- after_widget: Código HTML que ira después de cada widget, por defecto es </li>
- before_title: Código HTML que ira antes del tÃtulo del Widget, por defecto es <h2>
- after_title: Código HTML que ira después del tÃtulo del Widget, por defecto es </h2>
Sabiendo esto, procedemos a crear un Sidebar de ejemplo:
<?php register_sidebar( array( 'name' => 'Zona de Anuncios', 'id' => 'ad-zone', 'description' => 'Aquà irán los anuncios del sitio', 'before_widget' => '<div class="widget ad">', 'after_widget' => '</div>', 'before_title' => '<strong class="adtitle">', 'after_title' => '</strong>' ) );
Con solo ese código, si vamos a Apariencia > Widgets deberÃamos ver nuestro Sidebar, el cual podemos empezar a llenar con Widgets:
Mostrando el Sidebar
Para mostrar el Sidebar utilizamos la función dynamic_sidebar(), este lleva un solo parametro en donde debemos indicar que Sidebar mostrar, se pone el id (textual o numérico) del sidebar (en nuestro caso: ‘ad-zone’) si se deja vacÃo mostrará el primer sidebar registrado.
<?php dynamic_sidebar( 'ad-zone' ); ?>
Y esto lo podemos ubicar donde queramos, normalmente se acostumbra a crear un archivo sidebar.php, poner la función allà y luego incluirlo con get_sidebar().
Sin embargo los Sidebars en WordPress no siempre son usados como sidebars (literal), sino mas como un area dinámica multiproposito que se puede colocar en cualquier parte, por ejemplo en el Footer o en el Header.
Revisa el enlace de descarga por favor.
Hola Camilo, ya esta arreglado, muchas gracias por avisar.
https://tursos.com/demo/sidebars/codigo.zip
Hola Josue, te escribo pq tengo una consulta que quisiera hacerte.
Resulta que me encargaron diseñar un sitio web. El mismo tiene en general contenido estatico en HTML pero el cliente quiere que en el Home del sitio aparezcan los ultimos post que realizo en wordpress (como una seccion autogestionable de noticias). Mi consulta es si existe la posibilidad de embeber mediante un codigo, los titulos de los ultimos post de wordpress.
Me resultaria de mucha ayuda.
Desde ya muchas gracias.
Aqui podes ver una imagen del diseño y lo que necesito : http://www.camorraweb.com/imagen.jpg
Saludos. Guido
Hola Guido, puedes obtener los posts del blog via RSS, este te va a resultar un archivo XML que puedes decodificar y mostrar donde quieras, en tu caso en la pagina estática, aunque tendrÃas que convertirla a .php, el proceso esta explicado en este tutorial https://tursos.com/como-leer-un-archivo-xml-con-php/.
Sos un maestro Josue!! me resolviste un gran dilema!! Una pregunta mas. Habra posibilidad de darle formato personalizado con css? al igual que si se puede incluir las imagenes del post como miniaturas?
Nuevamente muchas gracias!
Le puedes dar el formato que quieras ya que tienes el control del HTML, sobre agregar las miniaturas al feed hay unas cuantas soluciones por allÃ, tal vez te sirva esta http://www.bufa.es/wordpress-foto-miniatura-rss/
Hola Josue, muy buen aporte, si señor!. Pero tengo sale una duda, te explico:
Mi plantilla de wordpress la cual estoy trabajando actualmente me soporta un Sidebars Dinámico en la parte izquierda de la plantilla y a mi me gustaria poner otro que se mostrara en la parte derecha tambien pudiendo utilizar los widgets en ambas partes del tema.
Muchas gracias de antemano
Saludos
Ramon
No te entendi muy bien, pero supongo que bastaria con duplicar lo que ya tienes y cambiar nombres.
ok perfecto!! Lo pruebo, muchas gracias!
Saludos
Ramon
No sé si es exactamente lo que quiero. Lo que deseo es colocar un sidebar diferente según qué post sea. Tengo que colocar ese código en la función single_post() ?