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. ¡Éxitos 100%!
No hay comentarios.:
Publicar un comentario