Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
sidebar widgets

Sidebar diferente para cada página en WordPress

En algunas ocasiones podemos necesitar tener un sidebar o barra lateral diferente para cada página o sección de nuestro sitio. Esto lo podemos hacer de 3 formas diferentes:

  • Con un único archivo sidebar.php en el que estableceremos una serie de condicionales para lanzar el código que deseemos en función de la plantilla en la que estamos.
  • Utilizando diferentes archivos sidebar.php siguiendo la regla sidebar-{nombre}.php, que cargaremos desde las plantillas del tema.
  • Utilizando áreas de Widgets distintas en cada página.

 

Un único archivo sidebar.php para todas las páginas

Para cargar el archivo sidebar.php desde cualquiera de las plantillas de nuestro tema usaremos la función get_sidebar(). Utilizando los condicionales de WordPress (is_home(), is_page(), is_single(), is_category()… más información aquí) podremos saber en qué plantilla estamos y lanzar el código que deseemos, por ejemplo:

<div id="sidebar"> <?php if ( is_home() ){ // Código para la página de Inicio } if ( is_page() ){ // Código para las páginas } if ( is_single() ){ // Código para los detalles de las entradas } if ( is_page_template('contacto') ){ // Código si tenemos una plantilla de página "contacto" }?> </div>

Cómo podemos observar, usando los condicionales de WordPress podremos definir qué código mostrar en función de si estamos en una página, en una categoría, en una etiqueta, en la página de búsqueda, incluso definir un sidebar específico para una categoría o página concreta, etc…

 

Diferentes archivos sidebar-{nombre}.php

El sidebar o barra lateral por defecto es el archivo sidebar.php y lo llamamos con la función get_sidebar(), pero podemos crear tantos archivos como queramos siguiendo la nomenclatura sidebar-{nombre}.php. Es decir, imaginando que tenemos una página especial para Eventos, y queremos crear un sidebar específico para esa página, bastaría con crear el archivo sidebar-eventos.php y llamarlo desde la plantilla eventos de la siguiente manera:

<?php get_sidebar(‘eventos’);?>

Ahora en el archivo sidebar-eventos.php podremos definir el código que queramos mostrar en la barra lateral de la página eventos.

 

Utilizar áreas de widgets diferentes

Podemos crear tantas áreas de widgets como necesitemos utilizando la función register sidebar en nuestro fichero functions.php:

<?php register_sidebar( array( 'name' => 'Widgets Home', 'id' => 'widgets-home', 'description' => 'Área de widgets que aparece en la Home', 'class' => '', 'before_widget' => '<div class="widget-home">', 'after_widget' => '</div>', 'before_title' => '<h2>', 'after_title' => '</h2>' ) ); register_sidebar( array( 'name' => 'Widgets Default', 'id' => 'widgets-default', 'description' => 'Área de widgets que aparece en el sidebar por defecto', 'class' => '', 'before_widget' => '<div class="widget-default">', 'after_widget' => '</div>', 'before_title' => '<h3>', 'after_title' => '</h3>' ) ); register_sidebar( array( 'name' => 'Widgets Eventos', 'id' => 'widgets-event', 'description' => 'Área de widgets que aparece en el sidebar de los eventos', 'class' => '', 'before_widget' => '<div class="widget-event">', 'after_widget' => '</div>', 'before_title' => '<h2>', 'after_title' => '</h2>' ) );?>

Éste código nos generará 3 áreas de widgets distintas donde podremos incluir widgets diferentes para cada una de ellas:

areas widgets

 

Ahora podremos llamar a estas áreas de widgets desde cualquiera de nuestros archivos sidebar-{nombre}.php de la siguiente manera:

<?php if (is_active_sidebar( 'ID-area-widget' )) { dynamic_sidebar( 'ID-area-widget' ); }?>

Donde ID-area-widget será el ID que hemos establecido al registrar el sidebar.

Puede que también te interese

Cómo desactivar Gutenberg cuando salga WordPress 5.0
Cómo desactivar Gutenberg cuando salga WordPress 5.0
La versión 5.0 de WordPress está a la vuelta de la esquina, prevista para finales de Agosto. Como ya sabrás a esta altura de la…
Creando un plugin para WordPress parte 4: Integración con WordPress
Creando un plugin para WordPress parte 4: Integración con WordPress
1. Creando un plugin para WordPress: Planificación y planteamiento 2. Creando un plugin para WordPress: Estilo del Código 3. Creando un plugin para WordPress: Escribiendo…
Cómo mover los scripts al footer en WordPress
Cómo mover los scripts al footer en WordPress
En esta entrada vamos a ver cómo mover o cargar los archivos JS en el footer de WordPress. Si miramos el código fuente de nuestro sitio…
Crea tu propio motor de búsqueda para WordPress
Crea tu propio motor de búsqueda para WordPress
En este artículo vamos a ver cómo personalizar la búsqueda en WordPress, creando nuestro propio motor de búsqueda para adaptarlo a nuestras necesidades. Por defecto el…