Blogger. Suprimir la fecha de los posts a discreción. | Oloblogger Para cierto tipo de blogs que quieren mostrar un contenido fijo, a modo de post permanente, puede ser útil eliminar la fecha del mismo para ...

6 de julio de 2009

Blogger. Suprimir la fecha de los posts a discreción.

Para cierto tipo de blogs que quieren mostrar un contenido fijo, a modo de post permanente, puede ser útil eliminar la fecha del mismo para conseguir el efecto de "página especial" que por ejemplo Wordpress sí permite. Este tipo de post puede ser un índice, un diccionario de términos relacionados con el blog, un tutorial,... en definitiva, cualquier cosa que el autor quiera destacar en su menú o barra lateral mediante un enlace.

El código que controla la "impresión" de la fecha de cada post está en el LOOP principal:
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'>
<data:post.dateHeader/>
</h2>
</b:if>
...

Como veis, hay una condición, una clase de estilo para la fecha (normalmente DATE-HEADER), la etiqueta DATA que controla la fecha de cada post y luego los cierres de cada una de las anteriores etiquetas. La condición lo que hace es comprobar si existe o no la fecha del post. Que no exista no es muy normal, pero se suele hacer esta comprobación para evitar errores de interpretación de código.

Pues bien, para no mostrar la fecha en NINGUN POST (ojo, en ninguno) simplemente hay que borrar todo el contenido entre B:IF y /B:IF, ambos inclusive. Esto en un principio no es demasiado práctico para un blog, pero en fin, ahí queda para el que le interese.

Lo que queremos en esta ocasión es ocultar la fecha pero para un solo post y para ello, aprovecharemos la condición ya existente, pero transformándola para que nos la compare con un post en concreto. Recordamos cómo usar condiciones en Blogger:

<b:loop values='data:posts' var='post'>
<b:if cond='data:blog.url != &quot;URL_PAG_SIN_FECHA&quot;'>
<h2 class='date-header'>
<data:post.dateHeader/>
</h2>
</b:if>
...

Si la URL es distinta a la indicada la fecha se mostrará. Evidentemente, si la URL es la indicada, la fecha NO se mostrará.

Si en lugar de tener un sólo post de este tipo tenemos varios, entonces necesitaremos anidar tantos IF como posts con sus correspondientes URL's:
<b:loop values='data:posts' var='post'>
<b:if cond='data:blog.url != &quot;URL_PAG_SIN_FECHA&quot;'>
<b:if cond='data:blog.url != &quot;URL_PAG2_SIN_FECHA&quot;'>
<b:if cond='data:blog.url != &quot;URL_PAG3_SIN_FECHA&quot;'>
<h2 class='date-header'>
<data:post.dateHeader/>
</h2>
</b:if>
</b:if>
</b:if>
...

Un ejemplo del truco funcionando en este post de ejemplo.

Dedicado a Priamo que ya le venía haciendo falta este truquillo.

¿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

38 comentarios :

  1. KE ONDA OLOMAN,

    ... COMO ESTAS?
    OYE, TIENES UN POST DONDE EXPLIQUES COMO LOGRAR EL EFECTO DE LA IMAGEN QUE TE SIGUE A LO LARGO DEL BLOG (COMO LA QUE TU TIENES A LA IZQ. DE TU BLOG CON PREMIOS 20 BLOGS)
    MUCHAS GRACIAS Y BUEN DIA!

    ResponderEliminar
  2. POR CIERTO, YA VOTE POR TU BLOG, LE DI LAS QUE TE MERECES: 5 ESTRELLAS!!
    GRACIAS...

    ResponderEliminar
  3. Hola Karla. Gracias por el voto, pero el concurso empieza más adelante. De momento es algo simbólico.

    Para hacer algo parecido, echa un vistazo a este post.

    ResponderEliminar
  4. Muy buena la información intentaré utilizar el script a ver que tal.
    Suerte en el concurso y saludos.

    ResponderEliminar
  5. Muchas Gracias por la info Oloman!!

    Buscaba este efecto en uno de mis blogs :)

    Saludos..

    ResponderEliminar
  6. Lo he intentando pero no lo he conseguido jeje :(
    El campo DATA, al menos según lo busco yo no me sale de la misma forma que a ti, he intentado pegar aquí la parte de mi código pero no me deja, así que haber si puedo contactar por correo..

    Saludos!

    ResponderEliminar
  7. Anónimo, olvidé mencionar que hay que tener pinchada la opción de artilugios expandidos. A ver si es eso. De todas formas, para verlo hubiera sido suficiente con que dejaras un enlace.
    Saludos

    ResponderEliminar
  8. Buenas!
    Hoy después de mucho tiempo he podido ponerme de nuevo a la labor y lo he conseguido, muchas gracias ;)

    Saludos!

    ResponderEliminar
  9. hey lo eh intentado pero fijate que en vez de ocultar la fecha me oculata todo el post..

    ResponderEliminar
  10. Yo quiero publicar artículos con fechas antiguas para generar linkead para atrás... ¿Cómo hago esto en Blogger? Porque por default la plataforma no me deja modificar la fecha de publicación, só me deja cambiar los formatos (osea como se ve).

    ¿No hay alguna forma retocando el código?

    Muchas gracias.

    ResponderEliminar
  11. Jr Isales, la única explicación posible es que metiste la condición en en sitio equivocado.

    Anónimo, puedes Editar cualquier entrada incluso aunque ya esté publicada. Abajo a la izquierda del cuadro de edición, encontrarás "Opciones de Entrada". Si pinchas, se despliegan un par de opciones, entre ellas las de cambiar la fecha del post. Luego le das a publicar y listo. Si pones una fecha futura el post no se publicará hasta esa fecha, pero si es una fecha pasada, lo publicará inmediatamente con esa misma fecha.

    ResponderEliminar
  12. oloman: pues fijate que mi blog esta alojado en blogger y pues sigo las incasiones que dices pero en vez de ocultar la fecha me ocultar todo el post, y me gustaria ocultar mucho la fecha de un post.. en donde esta colocado mi formulario de contacto si supieras como hacerlo te lo agredeceria mucho..!! saludes.!!

    ResponderEliminar
  13. Jr Isales ¿Puedes mandar el trozo de código una vez modificado, para que intente ver dónde está el problema?

    ResponderEliminar
  14. hola soy nueva seguidora de tu blog, muy bueno por cierto, y tengo una pequeña duda yo lo que quiero es que me aparezca la fecha, porque en una parte de mi blog aparece undefinedundefined y yo quiero que ponga la fecha en la que lo publique, muchas gracias y un saludo!!

    ResponderEliminar
  15. Hola V.

    Prueba con este post que creo que en él encontrarás seguramente la solución.

    ResponderEliminar
  16. Hola, Oloman! Soy seguidora de tu blog y me llamó la atención este post por parecerme tan práctico. Lo he intentado pero no consigo quitar la fecha del post. He probado a colocar el código más arriba, más abajo, sustituyendo &quot por comillas... Pero nada; por eso te pregunto si sabes cuál es el problema :S

    Saludos!

    ResponderEliminar
  17. Hola Laura

    El código tiene que ir dónde se indica, ni más ni menos. Para ver qué es lo que ocurre, necesitaría que lo instalaras (aunque no funcione bien) y que me dieras la dirección y la página/s sobre la que intentas anular la fecha. Saludos.

    ResponderEliminar
  18. Te paso la dirección del blog: http://twilightfansspain.blogspot.com/
    Y la del post al cual quiero suprimir la fecha:
    http://twilightfansspain.blogspot.com/2010/05/lorem-ipsum_6632.html

    Está instalado pero sigue mostrando la fecha, no sé qué es lo que pasa... :S Aunque lo cierto es que mi HTML no es igual que el de tu ejemplo, pero he buscado esta línea en mi plantilla: y lo he puesto justo debajo.

    Espero que puedas decirme por qué no funciona :)

    Gracias y saludos!

    ResponderEliminar
  19. No lo veo, pero en tu caso, el condicional y por tanto, lo tienes que agregar completo.

    Busca...
    <div class="time">
    AQUI VA UN SCRIPT RELACIONADO CON LA FECHA
    </div>

    ...y añade el condicional y su cierre así:
    <b:if cond='data:blog.url != "http://twilightfansspain.blogspot.com/2010/05/lorem-ipsum_6632.html"'>
    <div class="time">
    AQUI VA UN SCRIPT RELACIONADO CON LA FECHA
    </div>
    </b:if>

    No sé exactamente qué quieres hacer, pero puede que te venga bien conocer la existencia de lo que se llama páginas estáticas.

    ResponderEliminar
  20. Nada, no hay manera :(
    He buscado lo de < div class="time" > ... < /div >, pero no lo he encontrado; lo que sí encontré fue < div class='time' > ... < /div >, que supongo que será eso, pero igualmente no funciona :S

    ResponderEliminar
  21. ah, y en cuanto a lo que quiero hacer, pues es para poner allí los afiliados, para contactar, etc., y estoy haciendo pruebas con entradas para ver si funciona (no sé si seguiré intentándolo debido al éxito que estoy teniendo... -.-"), y eso de las páginas está bien, a excepción de que solo se pueden crear un máximo de 10, y realmente yo necesitaría más :/

    ResponderEliminar
  22. Se ve que ya encontraste el sitio, porque ahora mismo ya no sale la fecha en ese post. ;)

    ResponderEliminar
  23. Anda, es verdad! :O Pues no tengo ni idea de lo que he hecho, pero quizá lo que me despistaba es que si me pongo en la página principal del blog la fecha SÍ que sale; no es así cuando vas al post directamente, pero bueno, en realidad eso es lo que necesitaba. Muchas gracias! :)

    ResponderEliminar
  24. Entonces es que funcionó desde el principio.
    Saludos.

    ResponderEliminar
  25. Hola muy buenas Oloman, yo queria poner una imagen debajo de la fecha y colocar la fecha e imagen a la izquierda, casi como tu las tienes.
    Otra opcion seria poner el formato de las fechas tipo WP, ejemplo (7 Jun 2011) que se vea igualmente a la izquierda de las entradas y con una imagen de fondo tambien.
    Pero no se como hacerlo, ya he probado un tuto de otra pagina pero no me sirvio, puedes echarme una mano?

    Tu pagina es muy util y bonita, felicidades por el gran trabajo.

    Un saludo, Paulina.

    ResponderEliminar
  26. Paulina, lo de desplazar la fecha lo tengo a medias de redactar desde hace siglos, porque no sé cómo explicarlo para que valga para todos los casos. Me resulta complicado.

    Lo otro es más fácil:
    http://oloblogger.blogspot.com/2009/06/problemas-con-fecha-en-notepad-chaos-y.html

    ResponderEliminar
  27. Holaa Oloman!!! No me sale y lo he intentado una y otra vez, pero nada. He seguido tus indicaciones, pero obviamente algo haré mal. ¿Lo que tú indicas que hay que pegar? ¿Se puede colocar en cualquier parte del html de la plantilla (expandida plantillas de artilugios)? ¿Hay que colocar comillas en en enlace de url que hay que especificar?

    Me hace mucha falta quitar la fecha para el blog :(. Mi blog es cinchoychasca@blogspot.com. Gracias!!!

    ResponderEliminar
  28. Cincho y Chasca ¿pero tú quieres quitar la fecha de un post o de todos? Esto es para un solo post concreto. Si quieres quitarla para todos, busca en plantilla con artilugios expandidos y quita <data:post.dateHeader/>

    Esa es la variable que contiene la fecha de cada post. Si la quitas, no te saldrá en ninguno.

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

    ResponderEliminar
  30. Hola,por fin he conseguido quitar la fecha de la entrada principal( la que quiero que se muestre siempre al entrar al blog, por lo que le asigné una fecha muy adelantada)
    Pero no consigo quitar la fecha de esa misma entrada cuando es visitada desde los archivos.
    He copiado el código con la url de esa entrada, debajo del código con la url principal del blog, pero al guardar la plantilla me da error y me dice que no he cerrado bien.
    No se si estoy haciendo algo mal o simplemente no se puede.
    Gracias.

    ResponderEliminar
  31. AnnA, este truco no sirve para lo que quieres. A mí se me ocurren estas otras opciones para hacer algo parecido.
    1. Grabar ese texto que ahora tienes como primera entrada, en un gadget encima de las entradas. De esa manera será siempre visible estemos dónde estemos.
    2. Lo mismo pero encerrando ese gadget en un condicional para que sólo se vea cuando estamos en la página principal del blog (http://goo.gl/hBRS3)
    3. Hacer una pantalla de presentación con ese texto y el resto del blog, normal: http://goo.gl/F622f y http://goo.gl/t1mur

    ResponderEliminar
  32. Hola Oloblogger,

    Tengo instalada la plantilla BLUES (http://btemplates.com/2009/blogger-template-blues), que tiene la opción predeterminada de crear páginas, lo cual ya favorece que NO aparezca la fecha. Mi problema es que cuando la fecha está oculta, el título se desplaza hacia la izquierda y se sale de la zona de post. ¿Alguna idea para solucionar este problema? Supongo que funciona mediante condicionales, "si no sale la fecha con el título ha de pasar tal cosa", pero no tengo ni idea de cómo se modifica algo así.

    Muchas gracias.

    ResponderEliminar
    Respuestas
    1. Pues según he visto, la cabecera de los posts está hecha con una fecha (que incluye el efecto de la banda que sobresale) flotando a la izquierda y el título que también flota. Cuando se quita la fecha, lógicamente el título ocupa su lugar.

      Es complicado dar instrucciones sin poderlo ver, porque la demo no tiene creada ninguna página y sobre todo, porque desde aquí no puedo ver las condiciones ya que el código fuente me las muestra ya interpretadas (o resueltas por el camino que cumple la condición).

      Tienes que buscar la parte HTML desde dónde se "imprime" date-header y ver si está condicionado. Luego tienes dos opciones:
      - la fácil, quitar la condición para que aparezca la fecha también en páginas y problema resuelto
      - añadir dentro de la condición un <h2 class="date-header"><> que es lo mismo que en las entradas pero sin nada en su interior, es decir, sin fecha, porque la opción normal lleva una data con la fecha.

      Eso debería "imprimir" la banda y reservar el espacio, pero dejándolo vacío.

      Eliminar
    2. Hola de nuevo,

      Gracias por responder tan pronto.

      Mira, esto es lo que me sucede. Lamentablemente no puedo pasarte la dirección del blog porque está oculto hasta que lo termine, es para mi trabajo, así que te dejo esta imagen para que te hagas a la idea. En este caso, no aparece la fecha por eso de que blogger solo le pone la fecha al último post del día, y no a los anteriores, pero en las páginas me pasa lo mismo.

      http://i44.tinypic.com/xbae6x.png

      En cuanto a tu primera idea, no sé cual es la condición... no encuentro nada relativo a las páginas o no sé cómo buscarlo. Buscando códigos relativos a la fecha encuentro uno que es el de los posts normales y otro bajo la etiqueta "mobile".
      He intentado meter la condición que me has pasado después de la de los posts, pero no sirve de nada, o me da error porque está vacía la etiqueta, aunque la cierro con un < /h2 >...

      Me mosquea bastante, y aunque he buscado por todo no he visto nada que me ayude... Así que de veras siento molestarte con mis preguntas pero no se me ocurre otra persona que pueda saberlo!

      Bueno... muchas gracias, veremos si puedo arreglarlo. Si se te ocurre algo dímelo porfa ^^


      Muchas gracias de nuevo, Oloman.

      Eliminar
    3. El problema lo vi en la demo de la plantilla que me dijiste. A ver... Busca esto en tu plantilla y lo sustituyes por lo de abajo:

      <b:if cond='data:post.dateHeader'>
      <h2 class='date-header'><span><data:post.dateHeader/></span></h2>
      </b:if>
      .../...
      <b:if cond='data:post.dateHeader'>
      <h2 class='date-header'><span><data:post.dateHeader/></span></h2>
      <b:else/>
      <h2 class='date-header'><span></span></h2>
      </b:if>

      Sólo he añadido una condición para que cuando no haya fecha (páginas), se "imprima" el bloque de la fecha, pero sin esta. Observarás que la única diferencia es que en el segundo he quitado la variable data:post.dateHeader, que es precisamente la que aporta ese dato (fecha).

      Debe estar dos veces, una para la versión móvil y otra para la versión web. Cámbia ese código sólo en la segunda.

      Eliminar
  33. *_* ¡Muchísimas gracias Oloman!
    Yo había tenido que quitar todas las fechas pero como necesitaba que saliese en las entradas normales... ¡me has salvado!

    Menos mal que existe este blog, ¡y menos mal que existes tú!
    :)

    Beyka.

    ResponderEliminar
    Respuestas
    1. Eso suena a un "gracias por existir". Gracias entonces :D

      Eliminar