Evita cargar secciones o widgets si están vacíos

Blogger tiene muchas etiquetas, algunas de ellas son visibles en el código fuente de la página, como lo son las etiquetas b:section y b:widget. No voy a explicar a profundidad el uso de estas etiquetas, solo nos centraremos en el atributo cond que nos permite condicionarlas.

Situación

Las etiquetas de secciones generan HTML, el cual es obligatorio y se crean incluso si no hay contenido, aunque Blogger agrega la clase "no-items" para que el desarrollador se encargue de manejar la situación:

<b:section id='aside'/>
<div class="no-items section" id="aside"></div>

Por otro lado widgets que manejan articulos como el de Entradas Populares, aunque no contengan articulos, estos se seguirán mostrando. Claro podríamos usar CSS y solucionar fácilmente el problema para ambos casos, pero aquí estamos para ser profesionales y prolijos.

Condicionando secciones

Para condicionar una sección solo necesitamos agregar el atributo cond, lo que haremos será agregrar un expresion cuyo resultado será un booleano para que la sección se muestre:

<b:section cond='data:widgets any (w => w.sectionId == "aside")' id='aside'/>

Lo que hicimos fue recurrir a la variable universal widgets, la cual contiene información de todos los widgets actualmente activos y visibles. Una de las propiedades de cada widget es sectionId que contiene el id de la sección a la que pertenece. Entonces evaluamos si existe al menos un widget que pertenezca a la sección con la id especificada, si es así, la sección se mostrará, de lo contrario no.

Condicionando widgets

En el caso de los widgets lo que aquí ocurre es diferente, pero una cualidad que pocos conocen es que la etiqueta padre también puede leer todos los datos que le corresponden al tipo de widget:

<b:widget cond='data:posts.any' id='PopularPost1' type='PopularPost'/>

Tan simple como eso, si el widget tiene articulos, se mostrará, de lo contrario no. Esto es posible porque la tabla posts es un dato que le corresponde al tipo de widget PopularPost, por lo que podemos acceder a ella desde la etiqueta padre.

Conclusión

Se que este aporte ha sido muy corto pero esto solo es el principio, estaré compartiendo más cualidades interesantes que pocos conocen si veo que hay interés. Estoy seguro de que todo lo que tengo para compartir te sorprenderá. Si tienes alguna duda, puedes dejarla en los comentarios y no olvides compartir este aporte con tus seguidores. Muchas gracias por leerme.