Blogger: Cambiar el rótulo 'Mostrando entradas con la etiqueta...' | Oloblogger En Blogger, cuando se accede a la página de cualquier etiqueta, nos sale en la parte superior un rót...

19 de noviembre de 2013

Blogger: Cambiar el rótulo 'Mostrando entradas con la etiqueta...'

En Blogger, cuando se accede a la página de cualquier etiqueta, nos sale en la parte superior un rótulo dentro de un recuadro gris, que nos indica que estamos viendo las entradas filtradas por esa etiqueta y adicionalmente un enlace para volver a la página de Inicio del blog (Mostrar todas las entradas).

Anteriormente vimos otro sistema que consistía en eliminar del todo el widget que genera este mensaje (status-message) y generar uno nuevo con nuestro propio código (Ver: Cabecera para páginas de etiquetas. Secciones del blog). pero lo de hoy será más sencillo porque iremos directamente al código del artilugio para cambiar allí sólo la parte que nos interesa.

Rótulo de páginas de etiquetas



Advierto que quizás no sea perfecto y que en algunas combinaciones de búsquedas + etiquetas + contenido nulo, el mensaje podría no quedar muy ajustado, pero la sencillez del cambio creo que compensa esos problemas menores... si se dieran.


La parte que nos interesa está en un includable que tiene id='status-message', por lo que editando nuestra plantilla HTML, pinchando en cualquier parte de la ventana o recuadro que contiene el código y pulsando CTRL+F, nos será fácil encontrarlo con el buscador interno de código y precisamente esa palabra clave: status-message. Luego sólo es cuestión de pinchar en la flecha a la izquierda si no aparece desplegado.

Nota: No uséis el buscador del navegador que es una de las cosas que he detectado que más problemas os genera.

En la mayoría de plantillas, será la tercera coincidencia encontrada y es inconfundible porque empieza por <b:includable id='status-message'> y no lleva barra de cierre al final (/). Este sería el artilugio original completo (para localizarlo bien y por si queréis revertir los cambios algún día):


<b:includable id='status-message'>
 <b:if cond='data:navMessage'>
  <div class='status-msg-wrap'>
   <div class='status-msg-body'>
    <data:navMessage/>
   </div>
   <div class='status-msg-border'>
    <div class='status-msg-bg'>
     <div class='status-msg-hidden'><data:navMessage/></div>
    </div>
   </div>
  </div>
  <div style='clear: both;'/>
 </b:if>
</b:includable>


Lo que hay que cambiar es justo lo que he marcado en verde y lo que ahí escribamos será lo que saldrá dentro del recuadro gris. Podría ser un simple texto como "Mostrando entradas filtradas", pero también podemos usar algunos truquillos para que se vean datos adicionales.


Por ejemplo, la magia la hace en el siguiente caso las dos data que veis, que son respectivamente para mostrar la etiqueta seleccionada o la palabra insertada en un buscador interno básico.

Poniendo las dos, si una no existe porque estamos en página de etiquetas y no de búsqueda o viceversa, simplemente se mostrará una sí y la otra no. Adicionalmente he puesto un enlace para mostrar todas las entradas (con destino la página inicial) a similitud de lo que hace el artilugio original.

El resultado sería algo así como así como "Mostrando las recetas de pasta. Mostrar todas las entradas.".

Mostrando las recetas de <b><data:blog.searchLabel/><data:blog.searchQuery/></b>. <a expr:href='data:blog.homepageUrl'>Mostrar todas las entradas.</a>

Otra cosa útil sería ver el número de entradas como resultado del filtrado ("Viendo 5 artículos sobre libros"), para lo cual echamos mano de data:numPosts:

Viendo <data:numPosts/> artículos sobre <b><data:blog.searchQuery/><data:blog.searchLabel/></b>


Y ahora que conocemos esa variable que nos muestra el número de entradas ¿por qué no mostrar un rótulo distinto cuando se acaban? En este caso se vería el rótulo estándar y cuando avanzamos por recientes/antiguas, al llegar al final nos enseñaría un mensaje de que no hay más artículos para ver.

<b:if cond='data:numPosts == 0'>
 No hay más artículos sobre <b><data:blog.searchLabel/><data:blog.searchQuery/></b>.
<b:else/>
 Mostrando los artículos sobre <b><data:blog.searchLabel/><data:blog.searchQuery/></b>. <a expr:href='data:blog.homepageUrl'>Mostrar todas las entradas</a>.    
</b:if>


Por último, todo lo visto junto: condición para cuando no hay entradas y número de entradas junto con el nombre de la etiqueta o la palabra tecleada en el buscador, más un enlace al inicio:

<b:if cond='data:numPosts == 0'>
 No hay más artículos sobre <b><data:blog.searchLabel/><data:blog.searchQuery/></b>.
<b:else/>
  Mostrando <data:numPosts/> artículos sobre <b><data:blog.searchLabel/><data:blog.searchQuery/></b>. <a expr:href='data:blog.homepageUrl'>Mostrar todas las entradas.</a>    
</b:if>


Como es costumbre, en estos enlaces podéis ver la cosa funcionando: 1 y 2.

Creo que con esto quedará bastante completito, pero es que tampoco se me ocurría ninguna variante más ;)


Eso... eso... eso es todo amigos

¿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

51 comentarios :

  1. Hola, esta ultima forma es la que he probado yo y falla el "data:homepageUrl" (Mostrar todas las entradas) en Google Chrome me envía a la url de la etiqueta que estoy viendo en vez de ir a la pagina principal. En Internet Explorer me manda a:
    "URL del sitio web"/search/label/

    Yo lo he solucionado cambiando:
    expr:href='data:homepageUrl'
    Por esto:
    href="http://URL del sitio web"

    ResponderEliminar
    Respuestas
    1. Hola FranJGN. El problema es que cometí una errata que gracias a tí ya he subsanado. En lugar de data:homepageUrl debería poner data:blog.homepageUrl. Con eso no tendrás problemas.

      Eliminar
  2. hola amigo, fuera de este tema quiero que me ayudes con algo que es que no quiero que se me indexen las etiquetas de mi blog en ningun motor de busqueda ya se que lo que me bas a recomendar es Disallow: /search en el Archivo robots.txt pero eso no es lo que quiero por que aun asi se siguen indexando. yo estuve buscando condicionales de blogger y me invente este pedaso de codigo http://imageshack.com/a/img834/1251/utf4.jpg

    no se si estamal, no se si me funcione o me aga daño a las entradas por que todos mis post tienen etiquetas y al yo indicar que no se indexen creo k tambien le puede hacer daño a la indexacion de los post ya que tienen dichas etiquetas. espero y me puedas ayudar respondeme en cuanto leeas esto hermano. gracias

    ResponderEliminar
    Respuestas
    1. No sé a ciencia cierta hacer eso exactamente como quieres, pero pienso que la condición que pusiste no está del todo bien. Con INDEX aglutinas tanto la página HOME como las de navegación por recientes/antiguas y las de etiquetas. Por tanto, creo que estás desindexando la página principal y eso me parece que no conviene nada.

      Mete todo eso dentro de otra condición en la que primero se compruebe si estás en HOME o no. Cuando no se esté en HOME, entonces que se ejecute.

      Eliminar
    2. En la primera de las siguientes condiciones indico que se ejecute en todos lados menos en HOME

      y la segunda que solo se ejecute en INDEX

      http://imageshack.com/a/img607/8529/mqo1.jpg

      Me dejas saver que tal esta, si eso fue lo que me recomendaste que hiciera. gracias

      Eliminar
    3. Sí. Eso hará lo que quieres, que no se indexen las páginas de navegación y de etiquetas, pero sí la del Home.

      Eliminar
    4. Ok. Gracias Hermano por tu tiempo

      Eliminar
    5. Cres que si las de navegacion no se indexan le afecte en algo a la pagina.

      Eliminar
    6. Mi opinión es que no, que no afecta negativamente. De hecho pienso al contrario, que es mejor no indexarlas

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Una pregunta como hago para poner una imagen en donde lo muestra el punto rojo, te dejo la url y el lugar señalado donde quiero la imagen http://prntscr.com/25jxdu

    ResponderEliminar
    Respuestas
    1. La forma más fácil es con position: fixed; Echa un vistazo a esta entrada

      Eliminar
  5. Hola Oloman ¡Feliz Miércoles!
    A riesgo de parecer "copiona" o "poco original" me gustaría saber como puedo hacer para que mi sidebar quede estática como está aquí en tu sitio puesto que quiero darle un nuevo estilo al blog. Y este me gusta mucho y me parece realmente práctico.
    Mi idea es solo una sidebar nada más (del lado izquierdo) y que el blog tenga un tamaño de 900px. Partiendo de la Plantilla Travel de Blogger.
    Agradecería inmensamente tu ayuda.
    Besos y que tengas un resto de semana genial.

    ResponderEliminar
  6. Oloman², qué bueno que se te ocurrió ver ésto. El resultado es maravilloso: + informativo, + preciso, + claro, +1000 para ti ;)

    ResponderEliminar
  7. Es mi computadora o es que realmente los buscadores de blogger (como el que tienes tú) no funciona?

    ResponderEliminar
    Respuestas
    1. Llevan un par de días o tres sin funcionar. Es posible que estén cambiando algo...

      Eliminar
    2. Sabes Oloman, tengo un observación que te quería comentar hace días jaja, pero ya estoy aquí :)
      Como recordarás, Blogger cambia de forma dinámica el número de entradas mostradas en las páginas de etiquetas, y lo + seguro es que no se muestren todas las entradas de determinada etiqueta cuando sean muchas en un blog.
      Tal vez sea conveniente que el texto diga: "Se encontraron...entradas con la etiqueta..." En lugar de "Mostrando..."
      Se mostrará el enlace de navegación para poder ver el resto, sí, pero para que no quepa la posibilidad de confusiones. Pensarás que es subjetivo pero, "mostrando", es que se ven...tú me entiendes...
      En los casos en los que se use scroll infinito, queda perfecta la descripción :)

      Eliminar
    3. Puse distintos textos en los distintos trozos de código que usé en la entrada, para que se viera que este podía ser variable, pero ya sé que a tí te gusta ir hasta el más pequeño detalle para que se entienda bien todo :)
      Anotado queda.

      Eliminar
  8. Oloman!
    Volvemos a la carga con otra pregunta que nos has resuelto fenomenal la anterior consulta. Hemos buscado en el blog pero no encontramos respuesta así que te lo preguntamos por aquí.

    Abusando de tu amabilidad tenemos otra pregunta sobre este blog http://baiandby.blogspot.com/es
    Estamos quitando el /es y parece que lo hemos conseguido pero aparece por unos segundos en la barra de direcciones y luego se quita. El cliente quiere que se quite del todo, es posible? Me han pasado este link http://www.boliviaserver.com/blog_proc.asp?Seleccion=1431 en el que parece que te lo resuelve (me lo ha pasado el cliente pero la respuesta se corta al final). Si me pudieras indicar el cómo hacerlo.

    Millón de gracias.

    ResponderEliminar
    Respuestas
    1. No entiendo el problema, pero es que además pienso que hay algún error. ¿Te refieres a una extensión .com.es? Es que pusiste .com/es y no es lo mismo un subdominio que una carpeta dentro de un dominio.

      Eliminar
  9. Oloman, me tomé el atrevimiento de hacer algunas modificaciones al código (http://elblogtender.blogspot.com/2013/11/cambiar-status-message-blogger.html). Creo que podría interesarte.

    Muy buen blog. Saludos.

    ResponderEliminar
    Respuestas
    1. Ok Ulises. Ese es más completo, pero es que no quise mas que explicar algunas posibilidades. Gracias.

      Eliminar
  10. Genial, esto sobre lo de el resultado de búsqueda no sabía la verdad como hacerlo

    ResponderEliminar
  11. me gustó esta versión del código que implementaste, y este fue el resultado
    http://otakuworldsite.blogspot.mx/search/label/M%C3%BAsica
    http://otakuworldsite.blogspot.mx/search/?q=chuunibyou&x=0&y=0
    http://otakuworldsite.blogspot.mx/search?q=chuunibyou&updated-max=2012-10-20T16:24:00-05:00&max-results=20&start=6&by-date=false

    ResponderEliminar
  12. Acabo de encontrarme con algo que no quería, me ha quitado mi página de el error 404 y lo único que veo es lo de "No hay más artículos sobre" ayuda :(

    ResponderEliminar
    Respuestas
    1. Prueba a meter todo el código que propuse dentro de una condición como esta y así no perderás tu página de error:
      <b:if cond='data:blog.pageType != "error_page"'>
      CODIGO
      <b:else/>
      <data:navMessage/>
      </b:if>

      Eliminar
  13. El truco funciona perfecto.

    No viene mucho al caso pero algo de relacion si tiene. Tengo una duda respecto a la URL de las etiquetas. Resulta que mis etiquetas normalmente tienen 3 palabras y he observado que Blogger sustituye los espacios con esto (%20), esto no puede ser muy bueno para el SEO verdad? una URL al azar puede ser
    (http://toptenjuegos.blogspot.com.es/search/label/Juegos%20de%20Habilidad?max-results=33)

    Tambien he visto que blogger transforma automaticamente los espacios en guiones ( - ) en los titulos.

    ej: http://toptenjuegos.blogspot.com.es/2014/02/monsterventures-space-crash.html

    ¿Crees que se podría solucionar?

    Dame tu opinión.

    Un saludo.

    ResponderEliminar
    Respuestas
    1. No te sabría decir con seguridad si afecta al SEO pero intuyo que no. Pero es que además lo que pides es imposible. Si miras por ahí las reglas para las direcciones web (URL), no se pueden usar espacios en blanco ni otros caracteres "raros". Los guiones están entre los pocos que se pueden usar.

      Yo casi todos los sitios que veo siguen esas pautas en sus direcciones y no digo todos por si se me pasó alguno.

      Eliminar
    2. Creo que me esprese mal. Quería saber si se podía sustituir esto (%20) con guiones ( - ) como hace Blogger en los títulos, pero creo que no, pues en tus etiquetas compuestas tambien se ve esto (%20).

      EJ : http://www.oloblogger.com/search/label/Redes%20sociales

      Un saludo.

      Eliminar
    3. Sí, así es. Los espacios se sustituyen por su código URL.
      Yo intento siempre que puedo usar etiquetas con una sola palabra (cuento ahora y veo que tengo dos compuestas) pero se me ocurre que si tienes mucho interés, podrías hacer que las etiquetas de dos palabras ya incluyeran el guión.
      De todas formas personalmente excluí las páginas de etiquetas de la indexación. No me preguntes si es mejor porque tampoco lo sé a ciencia cierta. A mi me va bien, pero quizás me iría mejor si lo hiciera al contrario ;)

      Eliminar
  14. Ahora que lo dices, nunca vi en los resultados de Google una de mis páginas de etiquetas.
    Esto lo hace Blogger por defecto?
    Como se si mis páginas de etiquetas están excluidas?

    Salu2

    ResponderEliminar
    Respuestas
    1. Lo normal es que estén indexadas, pero puedes verlo mejor desde Webmasters Tools.

      Eliminar
  15. Ok Oloman

    gracias por la ayuda.

    Salu2

    ResponderEliminar
  16. Hola, he intentado implementar en el blog de talla en madera el último código que propones, el más completo y me gustaba mucho el resultado, pero lo he tenido que quitar porque al tener que mostrar una página que no existe (la de "Código 404") me aparecía: "No hay mas artículos sobre.", sin enlace a la página de inicio ni nada, lo cual, estarás de acuerdo, no es muy aceptable como resultado.

    Por otro lado, cuando introducía un nombre de etiqueta erróneo con el código que proporcionas tampoco me aparecía el enlace a la página de inicio.

    Para más inri me ha dado cuenta de que el mensaje de "Error 404" me aparece por duplicado.

    Ya sé que es un desastre, pero ¿podrías sugerirme algo?

    Cordiales saludos.

    ResponderEliminar
    Respuestas
    1. ¿Probaste lo que escribí en 13.1?

      Eliminar
    2. Lo he probado y es lo mismo pero al revés: me sale siempre el código para "error 404" :(

      Eliminar
    3. Quitando esta línea de código (la 727 en mi plantilla: luego aparece el mismo código en la línea 1073):

      < b:include data='top' name='status-message'/ >

      he conseguido que el mensaje de error ya no me aparezca por duplicado ;)

      Eliminar
  17. Sólo puedo añadir el código completo que yo utilicé en la demo y que puedes comprobar que funciona hasta para las páginas de error:

    <b:includable id='status-message'>
    <b:if cond='data:navMessage'>
    <div class='status-msg-wrap'>
    <div class='status-msg-body'>
    <b:if cond='data:blog.pageType != &quot;error_page&quot;'>
    <b:if cond='data:numPosts == 0'>
    No hay más artículos sobre <b><data:blog.searchLabel/><data:blog.searchQuery/></b>.
    <b:else/>
    Mostrando <data:numPosts/> artículos sobre <b><data:blog.searchLabel/><data:blog.searchQuery/></b>. <a expr:href='data:homepageUrl'>Mostrar todas las entradas.</a>
    </b:if>
    <b:else/>
    <data:navMessage/>
    </b:if>
    </div>
    <div class='status-msg-border'>
    <div class='status-msg-bg'>
    <div class='status-msg-hidden'><data:navMessage/></div>
    </div>
    </div>
    </div>
    <div style='clear: both;'/>
    </b:if>
    </b:includable>

    ResponderEliminar
  18. Muchas gracias, Oloman, ya funciona la cosa. Se ve que no coloqué bien los fragmentos de código o algo faltaba.

    Ahora lo único es que cuando no hay artículos en la búsqueda no aparece el enlace a la página de inicio, pero no me importa, porque el mensaje es claro y el usuario tiene multitud de opciones para salir de ahí.

    Gracias, como digo, y un saludo.

    ResponderEliminar
    Respuestas
    1. Pero lo puedes añadir sin problemas. Tras la línea:
      "No hay más artículos sobre<b><data:blog.search..."
      ...añade un enlace a tu página principal y ya está.

      Eliminar
    2. Es verdad, qué fácil. Y conste que digo esto más por resaltar mi ignorancia que por quitarte a ti ningún mérito, que para mí no era el problema menos que lo del huevo de Colón.

      Ya está todo. Gracias.

      Eliminar
    3. Eso es. Todo es muy fácil cuando se conoce el sistema.
      Un caso típico de reparación por parte del servicio técnico:
      - "¿50€ por sólo apretar un tornillo?"
      - "No. Son 50€ por saber QUÉ tornillo apretar"

      Eliminar
  19. Hola Olomán, de nuevo estoy por aquí dando guerra...
    El otro día (tras mucho buscar) encontré una modificación de código que me permite ocultar entradas, con determinada etiqueta, de la página de inicio. Luego puse el enlace a esa etiqueta en el menú habitual y... ¡ha dejado de verse el contenido de las páginas estáticas! No sé como solucionarlo, las páginas siguen perfectamente en la administración del blog, pero no se ven.
    Te dejo el enlace a la página en la que encontré el código y también el del blog para que puedas ver lo que trato de explicarte.
    http://www.ayuda-bloggers.info/2013/03/blogger-entradas-etiquetas-inicio.html
    http://www.jabonesdecasa.com/
    ¿Se te ocurre como puedo solucionarlo?
    Gracias por tu tiempo!!!!!

    ResponderEliminar
    Respuestas
    1. De momento sólo te puedo decir que repases bien las nuevas líneas de código que insertaste siguiendo ese tutorial, porque desde aquí sólo puedo ver el código ya interpretado y por tanto, filtrado por esas condiciones. Me resulta imposible ver si cometiste algún fallo sin ver la plantilla entera y el código del tutorial está bien.
      Si persiste el problema, prueba a desmontar lo hecho siguiendo los pasos del tutorial pero al revés. Al menos así tendrás las cosas como al principio.

      Eliminar
    2. Gracias Oloman, lo repasaré y repetiré. Me quedaba la duda de si el código del tutorial podía no ser correcto. Sabiendo que es un error mío al aplicarlo.. le daré vueltas hasta conseguirlo (con un poco de suerte) Gracias de nuevo.

      Eliminar
    3. Lo he solucionado por el viejo sistema de poner muy antigua la fecha de la nueva entrada, aparece... pero al final.
      Gracias Oloman, cuando encuentre algo que me funcione te cuento

      Eliminar
    4. Bueno, bien, aunque hoy por hoy creo que no hay nada 100% efectivo.

      Eliminar
  20. Hola, tengo dos problemas que no he podido solucionar, espero me puedas guiar:

    1) Necesito mostrar entradas con determinada etiqueta en la pagina principal de un blog.

    2) Necesito integrar Disqus en las paginas de Blogger, solo aparce en los post, en la pagina principal.

    Por favor...

    ResponderEliminar
    Respuestas
    1. Sí, pero poco...
      1) Si te refieres a sólo mostrar en portada las de determinada etiqueta, lo único eficaz que se puede hacer es algo complejo. Tendrías que hacer que no se viera ninguna en Home y luego mediante un gadget, que al contrario, sólo se vería en Home, mostrar las de esa cierta etiqueta. Lo que pasa es que para esto último no tengo nada publicado, pero sería algo como esto
      b) Tampoco tengo nada sobre Disqus, pero aquí podrás ver algo. No obstante yo no pondría los comentarios en portada aunque se pueda. Es un lío luego para leer.

      Eliminar
  21. O simplemente puedes desactivarlo

    .status-msg-wrap{
    display:none;
    }

    ResponderEliminar