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:

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:

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:

É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:

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


¿Me invitas a un café?
Si te ha gustado el blog o algún artículo en concreto te ha ayudado a resolver una duda o problema que tenías…¿me invitas a un café?

Puede que también te interese

Cómo añadir un botón para donaciones en tu plugin
En el artículo anterior vimos cómo añadir un enlace para los ajustes en el listado de plugins. En esta entrada vamos a ver cómo añadir…
Mejora la puntuación de Google PageSpeed Insights: Eliminar el JavaScript que bloquea la visualización del contenido de la mitad superior de la página
1. Optimizar imágenes 2. Minificar CSS y JS 3. Especificar caché de navegador 4. Habilita la compresión 5. Reducir el tiempo de respuesta del servidor…
Seguridad WordPress: proteger wp-config.php
El archivo wp-config.php es uno de los más críticos en cuanto a seguridad se refiere ya que es el que contiene la información sobre la…
Deshabilitar página de categorías o etiquetas
Como sabrás, WordPress por defecto tiene dos taxonomías para las entradas o posts de tu sitio: categorías y etiquetas. Estas taxonomías te permiten categorizar o…




  • OTTO JEAN PIERRE DE LA CRUZ LO

    Buenas tardes, muchas gracias por la infor, pero tengo una consulta digamos que tengo un plugin (ejemplo: job manager) y este plugin hace que se carge todos los puestos de trabajo(jobs) que existen, pero al entrar al detalle de un trabajo me carga el sidebar por defecto, como podria hacer para cambiar el sidebar de esa pagina automaticamente creada por el plugin. Gracias de antemano.

    • Hola Otto

      No conozco ese plugin, pero imagino que creará un CPT llamado “job” o algo similar. Si dispones de una página para mostrar el detalle de este CPT (ej: single-job.php), en esa plantilla llama al sidebar que necesites

      Saludos

      • OTTO JEAN PIERRE DE LA CRUZ LO

        EL PROBLEMA ESTA EN QUE TENGO POR DEFECTO UN SIDEBAR(UTIL PARA LA TIENDA SHOP), Y APARECE CADA QUE UN PLUGIN CREA UNA NUEVA PAGINA POR DEFECTO, PERO NO PUEDO EDITARLO YA QUE EL PHP LO LLAMA PRIMERO Y YA TENDRIA 2 SIDEBARS EN UNA PAGINA Y SI QUIERO OCULTARLO SE DEMORA PORQUE PRIMERO CARGA EL HTML. GRACIAS POR EL APOYO

        • Como te comentaba Otto, no he utilizado nunca ese plugin y no te puedo ayudar. Te tocará investigar por tu cuenta o ponerte en contacto con el desarrollador de ese plugin.

          Suerte

          • OTTO JEAN PIERRE DE LA CRUZ LO

            NADA IGUAL GRACIAS, YA LO RESOLVI, HICE UN PEQUEÑO LOADER PARA QUE CUBRA, EL PROBLEMA DEL SIDEBAR DEL TEMPLATE POR DEFECTO Y YA LO SOLUCIONE GRACIAS.