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 == "archive"'> <!-- Estamos en una página tipo Archive --> Mostramos por ser página Archive </b:if> <b:if cond='data:blog.pageType == "index"'> <!-- 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 != "static_page"'> <!-- Estamos en una página estática --> Mostramos por ser página estática </b:if> <b:if cond='data:blog.pageType == "item"'> <!-- 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 == "index"'> Se ejecuta sólo en páginas Index (y Estáticas) </b:if/> <b:if cond='data:blog.pageType == "static_page"'> 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 == "index"'> <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 == "static_page"'> Se ejecuta sólo en páginas Estáticas <b:else/> <b:if cond='data:blog.pageType == "archive"'> 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.
¡S.O.S.! Mi plantilla se ha vuelto loca :S
ResponderEliminarDe 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
Comprueba que este es el código que estás usando. Te está contando los tweets de la página principal.
Eliminar<a class='twitter-share-button' data-count='horizontal' data-lang='es' data-via='laMar_s' href='http://twitter.com/share'>Tweet</a>
Yo no tengo botón en la pág. principal :(
EliminarYa, 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.
EliminarAhora ha desaparecido el botón como tal, sólo aparecen las letras
EliminarSolucionado twitter ;) sólo me queda G+1
EliminarBesos
No sé qué te ocurre exactamente con el +1, pero echa un vistazo a esto por si te sirviera:
EliminarSolucionando los problemas con el botón +1
Puedo hinchar un poco las guindas???
ResponderEliminarSerí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!!!!
Estoy en ello Mamadealess. Dentro de no mucho tiempo podrás imprimir lo que quieras ;)
Eliminarbieeeeeeennn!!!!!!.....buenisisisismo!!!!....Mil gracias!!!!..y perdon por hinchar las guindas!!!
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarNo 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.
EliminarExelente 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.
ResponderEliminarVisitamte www.webartea.com.ve