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://purpempggy.blogspot.com ) he obtenido la solución:
Hay que agregar el siguiente script antes del </head> en la plantilla (Edición HTML) :
<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.