toggle

Condicionales b:if globales de Blogger

min rel

Para diseñar o modificar una plantilla de blogger, en muchas ocasiones nos surge la necesidad de tener el control sobre lo que queremos mostrar y lo que no, y es aquí donde las condicionales juegan un papel importante. En esta entrada hablaremos de una serie de condicionales, que son muy útiles en la creación o modificación de una plantilla para Blogger, todas se pueden usar en cualquier parte del documento XML.


Condiciones para el tipo de Página

Se usan para mostrar u ocultar contenido dependiendo del tipo de página.


Comprueba si es la página principal, página de busqueda, página de etiquetas, o página de archivo:


<b:if cond='data:blog.pageType == "index"'>
   <!--Contenido que se mostrará en el index-->
</b:if>

Comprueba si es una entrada:


<b:if cond='data:blog.pageType == "item"'>
   <!--Contenido que se mostrará en una entrada-->
</b:if>

Comprueba si es una página estática:


<b:if cond='data:blog.pageType == "static_page"'>
   <!--Contenido que se mostrará en una página estática-->
</b:if>

Comprueba si es el Error 404:


<b:if cond='data:blog.pageType == "error_page"'>
   <!--Contenido que se mostrará en la página no encontrada-->
</b:if>

Condiciones para una página específica del index

La condición data:blog.pageType == "index" afecta a la página principal, página de búsqueda, página de etiquetas y página de archivo, pero las siguientes condiciones sólo afectan a una en concreto.


Comprueba si es la página inicio:


<b:if cond='data:blog.url == data:blog.canonicalHomepageUrl'>
   <!--Contenido que se mostrará solo en la página de inicio-->
</b:if>

Comprueba si es la página de archivo:


<b:if cond='data:blog.pageType == "archive"'>
   <!--Contenido que se mostrará en el archivo del blog-->
</b:if>

Comprueba si es la página de búsqueda:


<b:if cond='data:blog.searchQuery'>
   <!--Contenido que se mostrará solo en la página de búsqueda-->
</b:if>

Comprueba si es la página de etiquetas:


<b:if cond='data:blog.searchLabel'>
   <!--Contenido que se mostrará solo en la página de etiquetas-->
</b:if>

Condiciones para una página o entrada específica

Esta condición sólo muestra el contenido si la url coincide con la del navegador. Si tu dominio no es personalizado utiliza el dominio global: ejemplo.blogspot.com, sin ninguna extension por país, de lo contrario no funcionará.


Comprueba si la url actual es igual a ejemplo.com/p/entrada.html:


<b:if cond='data:blog.canonicalUrl == "http://ejemplo.com/p/entrada.html"'>
  <!--Contenido que se mostrará solo en la url indicada-->
</b:if>

La condición anterior deja de funcionar si el dominio del blog es modificado. Por eso nos resulta mejor condicionar una entrada o una página en concreto mediante su ID, la cual es única y no deja de funcionar por mucho que cambiemos de dominio.


Comprueba si la ID de la página actual es 1422EJEMPLO:


<b:if cond='data:blog.pageId == "1422EJEMPLO"'>
  <!--Contenido que se mostrará si la ID coincide con la página estática-->
</b:if>

Comprueba si la ID de la entrada es 7243EJEMPLO:


<b:if cond='data:blog.postId == "7243EJEMPLO"'>
  <!--Contenido que se mostrará si la ID coincide con la entrada-->
</b:if>

Pero... ¿Donde encontramos la ID?, es muy sencillo, al crear/editar una entrada o página estática, la podemos encontrar en la barra de direcciones del navegador.


https://www.blogger.com/blogger.g?blogID=9197#editor/target=post;postID=1422EJEMPLO;onPubli...

Como ya lo hablamos en la primera entrada que publiqué sobre las condicionales b:if, podemos hacer que todas validen lo contrario, si la comparación la hacemos mediante "!=" que significa "NO es igual a":


<b:if cond='data:blog.pageType != "index"'>
   <!--Se mostrará en todo el blog menos en el index-->
</b:if>

Las etiquetas data que devuelven "verdadero" sin realizar ninguna comparación, las podemos invertir agregando "!" al inicio de la condición:


<b:if cond='!data:blog.searchLabel'>
   <!--Se mostrará en todo el blog menos en la página de etiquetas-->
</b:if>

Espero que esto les sea de mucha ayuda en sus modificaciones. Si Blogger realiza cambios o mejoras en el codigo actualizaré la entrada.