Mostrar un post al azar es un truco sencillo que puede retener nuestras visitas, mirémoslo así:

Un usuario llega al blog por Google, mira lo que está buscando y se va, pero hay algunos curiosos que quieren saber que más nos puede enseñar el blog, para eso están las entradas relacionadas, pero por qué no mostrar una entrada al azar. Asimismo alguien que es asiduo visitador quiere leer algo más pero no sabe qué, entonces le caería bien ver una entrada aleatoria.

Esa opción la tengo desde hace mucho tiempo gracias a Rosa (sí, la del escaparate), pero recién hace unas semanas se me ocurrió sacarle provecho. Grande fue mi sorpresa al ver que ya no me lograba mostrar la entrada aleatoria, revisando veo que desde el mismo código fuente del blog desde donde obtuvo el truco Rosa ( http://purplemoggy.blogspot.com ) he obtenido la solución:

Hay que agregar el siguiente script antes del </head> en la plantilla (Edición HTML) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<script type='text/javascript'>
//< ![CDATA[
var _yourBlogUrl = "http://braulioaquino.blogspot.com";
 
function randomPost() {
  var script = document.createElement("script");
  script.setAttribute("type", "text/javascript");
  var theUrl = _yourBlogUrl +"/feeds/posts/summary?alt=json-in-script&callback=getTotalPostsCallback&start-index=1&max-results=1";
  script.setAttribute("src", theUrl);
  document.documentElement.firstChild.appendChild(script);
};
function getTotalPostsCallback(json) {
  var totalResults = json.feed.openSearch$totalResults.$t;
  if (totalResults > 0) {
    getRandomPostNumber(totalResults);
  }
};
function getRandomPostNumber(totalResults) {
  var randomNumber = Math.floor((Math.random() * totalResults) + 1);
  getRandomUrl(randomNumber);
};
function getRandomUrl(randomNumber) {
  var script = document.createElement("script");
  script.setAttribute("type", "text/javascript");
  var theUrl = _yourBlogUrl +"/feeds/posts/summary?alt=json-in-script&callback=getTheUrlCallback&start-index=" + randomNumber + "&max-results=1";
  script.setAttribute("src", theUrl);
  document.documentElement.firstChild.appendChild(script);
};
function getTheUrlCallback(json) {
  var theUrl;
  for(var i = 0; i < json.feed.entry[0].link.length; i++) {
    if (json.feed.entry[0].link[i].rel == "alternate") {
      theUrl = json.feed.entry[0].link[i].href;
      break;
    }
  }
 
  if(theUrl) {
    window.location.href = theUrl;
  }
}
//]]>
</script>

Ya sabes que donde dice http://braulioaquino.blogspot.com tienes que colocar la url de tu blog, ahora guardas la plantilla y en el lugar donde quieras colocar el enlace a la entrada aleatoria (dentro de la plantilla o en un nuevo elemento html-javascript) agregas:

<a href='javascript:randomPost();'>Nombre que deseas darle al enlace</a>

Ese enlace lo puedes colocar en diferentes sitios. Trata de colocarlo e un lugar que sea visible para cualquiera que entre a tu blog.

 

 

 

Categories: blogs Tags: , 2.185 visitas
  1. Adrian
    Sábado, 11 de octubre de 2008 a las 17:33 | #1

    No me funciona lo he hecho tal cual lo haz publicado

  2. Braulio Aquino
    Domingo, 12 de octubre de 2008 a las 16:33 | #2

    Listo, te envié un mensaje al mail. Cualquier consulta me avisas.

  3. Bichicome
    Sábado, 25 de octubre de 2008 a las 20:47 | #3

    a mi tampoco me anda…

  4. Braulio Aquino
    Domingo, 26 de octubre de 2008 a las 00:52 | #4

    Editado, copien y peguen tal como está. En la anterior le hice unos saltos de linea en las dos filas largas para que se vea bien en el post, pero eso hacia que el código no funcione.

    Gracias por avisar.

  5. elios
    Jueves, 6 de noviembre de 2008 a las 21:14 | #5

    No me funciona me puedes ayudar?
    mi correo es elioshdez(arroba)gmail.com

    Me gustaria que se puedan mostrar 5 entradas aleatorias, ayudame.

  6. ConCarnita
    Domingo, 9 de noviembre de 2008 a las 16:41 | #6

    Genial, me funcionó perfectamente. Puedes verlo en mi blog haciendo clic en mi apodo (solo para adultos).

    Muchas gracias

  7. Braulio Aquino
    Martes, 11 de noviembre de 2008 a las 06:00 | #7

    Hey! Me siento importante. Mi primer comentario de agradecimiento desde un blog porno :D

    Pd. De nada

  8. Tikki-kun
    Lunes, 1 de diciembre de 2008 a las 02:40 | #8

    Hay un código igual en la red ke me genera el error. Comparándolo con el tuyo, me di cuenta ke solo la ultima parte es la ke se debe cambiar (la funcion gettheURLCallBack).
    Gracias por la orientacion XD (obviamente, ya esta incluido en mi blog)

  9. Martes, 27 de enero de 2009 a las 22:26 | #9

    muy wena la info respecto a este tema de las entradas
    ando buscando todo lo contrario….
    me gustaria saber si se puede hacer que al entrar a tu blog
    siempre salga la misma entrada..en realidad no se si eso es posible
    pero me gustaria saberlo y si me puedes alludar como hacerlo
    te lo agradeseria mucho

    saludos y ojala me contestes
    buen blog

  10. Jaume
    Martes, 7 de abril de 2009 a las 09:58 | #10

    No me funciona.

    Si pudiera ser, en lugar de mostrar un enlace, no pude mostrar ya el nombre del post al azar¿

  11. Martes, 7 de abril de 2009 a las 15:54 | #11

    @Jaume En blogger no se puede porque esa lista se tendría que generar con PHP, y blogger no nos deja :(

  12. Domingo, 26 de abril de 2009 a las 17:29 | #12

    Exelente,andubo de 10!! Gracias compa.

  1. Sin trackbacks aún.

Publicidad: Encuentra todos los Hostales de Miraflores en guiadehoteleslima.com