Guía: Condiciones Blogger según tipo de página. Combinadas | Oloblogger En anterior entrada vimos cómo hacer todas las condiciones simples que Blogger nos permite para poder diferenciar contenidos según el tipo ...

1 de febrero de 2012

Guía: Condiciones Blogger según tipo de página. Combinadas

En anterior entrada vimos cómo hacer todas las condiciones simples que Blogger nos permite para poder diferenciar contenidos según el tipo de página en el que estemos, pero si queremos distinguir más casos, ya no nos queda más remedio que empezar a combinar condiciones. Todas las combinaciones serían demasiadas, así que tras las nociones básicas relacionaré sólo las que creo más comunes y el resto ya son cosa de vuestra capacidad lógica ;)

Como pista, cuando queramos hacer un OR (esto o aquello), normalmente servirá con hacer dos condiciones sucesivas una para cada cosa, siempre que no se solapen en tipo de páginas. Esto ocurre por ejemplo con las Index y el Home, que tienen en común precisamente esta última. Por el contrario, cuando queramos simular un AND (esto y aquello), por lo general tendremos que meter condiciones una dentro de otra, de manera que si se cumple una y la anidada, se darán por cumplidas ambas.


Situación en la que algo se podrá ver en algo sólo en páginas de navegación y de archivo, pero no en la de Inicio.

Index y Archive son excluyentes por lo que tenemos que hacer dos comprobaciones seguidas.

  • Primero vemos si la página es del tipo Archive y en caso afirmativo, ejecutamos por ahí. En la siguiente condición no se llegará a entrar porque Archive != Index.
  • Por el contrario, si no es Archive entraremos en la segunda condición y si es tipo Index se hace una tercera para verificar que NO estamos en Inicio (Home), que también es del tipo Index. Sólo en ese caso mostramos.
  • En todos los demás casos, páginas estáticas o post individuales (Item), tampoco se muestra nada porque no entramos en el cumplimiento de ninguna de las dos condiciones.

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
   <!-- Estamos en una página tipo Archive -->
   Mostramos por ser página Archive
</b:if>

<b:if cond='data:blog.pageType == &quot;index&quot;'>
  <!-- Estamos en una página tipo Index -->
  <b:if cond='data:blog.url != data:blog.homepageUrl'>
    Mostramos por ser página Index pero no Home
  </b:if>
</b:if>


¿Y si queremos que algo se vea precisamente en entradas individuales y páginas estáticas pero no en todas las demás? Pues ya no bastaría con poner el signo del operador contrario, porque el anidamiento de condiciones daría un resultado indeseado. Como ambos tipos no están solapados como ocurría en el tipo Index que incluía Home, más fácil sería en este caso comprobar las dos cosas por separado.

<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
   <!-- Estamos en una página estática -->
   Mostramos por ser página estática
</b:if>

<b:if cond='data:blog.pageType == &quot;item&quot;'>
  <!-- Estamos en una entrada individual -->
  Mostramos por ser una entrada
</b:if>


El uso de else que permite anidar condiciones también nos puede ser práctico. Es una segunda oportunidad de seguir comprobando cosas dentro de una misma condicion, cuando no se cumple la primera opción.

Mostrar un contenido en Home y otro distinto en las páginas Index (distintas de Home), Archivo y Estáticas:

<b:if cond='data:blog.url == data:blog.homepageUrl'>
  Se ejecuta sólo en Home
<b:else/>
  <b:if cond='data:blog.pageType == &quot;index&quot;'>
    Se ejecuta sólo en páginas Index (y Estáticas)  
  </b:if/>
  <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
    Se ejecuta sólo en páginas Estáticas (e Index)  
  </b:if/>
</b:if/>

Obsérvese que las páginas individuales (item) no entrarían por ninguna de las condiciones, tal y como nos proponíamos en el enunciado.


Y para terminar, no con todas las combinaciones pero sí con un anidamiento que nos permitirá discriminar todos los casos uno por uno. Ahí va eso:

<b:if cond='data:blog.pageType == &quot;index&quot;'>
  <b:if cond='data:blog.url == data:blog.homepageUrl'>
    Se ejecuta sólo en Home
  <b:else/>
    Se ejecuta sólo en Etiquetas/Recientes/Antiguas
  </b:if>
<b:else/>
  <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
    Se ejecuta sólo en páginas Estáticas
  <b:else/>
    <b:if cond='data:blog.pageType == &quot;archive&quot;'>
      Se ejecuta sólo en páginas de Archivo  
    <b:else/>
      Se ejecuta sólo en posts individuales
    </b:if>
  </b:if>
</b:if>

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

13 comentarios :

  1. ¡S.O.S.! Mi plantilla se ha vuelto loca :S
    De repente hoy en el nº de twits, junto al botón twitter, hay una barbaridad y en todas las entradas sale el mismo nº, además si le das para compartir sólo sale la url del blog sin la del post. Y en el de G+1 tampoco sale el titulo del post. ¿Me echas una mano?
    Besos enormes

    ResponderEliminar
    Respuestas
    1. Comprueba que este es el código que estás usando. Te está contando los tweets de la página principal.

      <a class='twitter-share-button' data-count='horizontal' data-lang='es' data-via='laMar_s' href='http://twitter.com/share'>Tweet</a>

      Eliminar
    2. Yo no tengo botón en la pág. principal :(

      Eliminar
    3. Ya, pero el gadget sí está tomando la dirección principal y no la de las entradas. Con artilugios expandidos busca ese botón de Twitter que tienes en las entradas individuales y comprueba que es el que te pongo.

      Eliminar
    4. Ahora ha desaparecido el botón como tal, sólo aparecen las letras

      Eliminar
    5. Solucionado twitter ;) sólo me queda G+1
      Besos

      Eliminar
    6. No sé qué te ocurre exactamente con el +1, pero echa un vistazo a esto por si te sirviera:
      Solucionando los problemas con el botón +1

      Eliminar
  2. Puedo hinchar un poco las guindas???
    Sería muy feliz si en tu blog hubiera un boton de imprimir los posts....Hace ratazo que copio y pego en word todo ...Ahora podria guardar en pdf con la (no se como se dice)impresora virtual pdf (espero no decir disparates...jajaja)
    Gracias por compartir tanto!!!!

    ResponderEliminar
    Respuestas
    1. Estoy en ello Mamadealess. Dentro de no mucho tiempo podrás imprimir lo que quieras ;)

      Eliminar
  3. bieeeeeeennn!!!!!!.....buenisisisismo!!!!....Mil gracias!!!!..y perdon por hinchar las guindas!!!

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. No veo foto pero vi blog y no observo que al pinchar en una imagen salga ninguna otra cosa más que la imagen pero a tamaño más grande.

      Eliminar
  5. Exelente post, no lo lei completo solo saque lo que necesitaba los nombres de cada tipo de pagina, solo sabia index, pero ya se que existen tambien item y static_page,y lo encontre muy rapido, de verda super bueno, saludos, me ayudastes un monton. Con mas tiempo le voy a echar un ojo a todo tu blog, saludos.

    Visitamte www.webartea.com.ve

    ResponderEliminar