Entradas relacionadas debajo de un post

Hace un tiempo que no hago una ayuda para blogger como se merece, así que en este momento va uno que es de gran utilidad para mantener entretenido al lector.

Como verán en las entradas de mi blog al desplegarlas por completo, hay abajo un par de post relacionados con el que se está mostrando. Esto es muy fácil de hacer, sólo sigan los siguientes pasos:

Primero que nada recomiendo clickear la opción Descargar plantilla completa por si surge algún error.
  • Ingresamos a Diseño/Edición de HTML y tildamos la opción Expandir artilugios.
  • Con Ctrl + f buscamos el código ]]></b:skin> y debajo de este pegamos lo siguiente:

<script type='text/javascript'>
//<![CDATA[
var relatedTitles = new Array();
var relatedTitlesNum = 0;
var relatedUrls = new Array();
function related_results_labels(json) {
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
relatedTitles[relatedTitlesNum] = entry.title.$t;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
relatedUrls[relatedTitlesNum] = entry.link[k].href;
relatedTitlesNum++;
break;
}
}
}
}
function removeRelatedDuplicates() {
var tmp = new Array(0);
var tmp2 = new Array(0);
for(var i = 0; i < relatedUrls.length; i++) {
if(!contains(tmp, relatedUrls[i])) {
tmp.length += 1;
tmp[tmp.length - 1] = relatedUrls[i];
tmp2.length += 1;
tmp2[tmp2.length - 1] = relatedTitles[i];
}
}
relatedTitles = tmp2;
relatedUrls = tmp;
}
function contains(a, e) {
for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
return false;
}
function printRelatedLabels() {
var cuantosPosts = 0;
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
var dirURL = document.URL;
document.write('<ul>');
while (i < relatedTitles.length && i < 20) {
if (relatedUrls[r] != dirURL) {
document.write('<li><a href="' + relatedUrls[r] + '" title="Post relacionado: '
+ relatedTitles[r] + '">' + relatedTitles[r] + '</a></li>');
}
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
cuantosPosts++;
if (cuantosPosts == 5) {
break;
}
}
document.write('</ul>');
}
//]]>
</script>
  • Lugo buscamos el código <b:loop values='data:post.labels' var='label'>
  • Antes del siguiente </b:loop> pegamos este código:
<b:if cond='data:blog.pageType == "item"'>
<script expr:src='"/feeds/posts/default/-/" + data:label.name +
"?alt=json-in-script&callback=related_results_labels&max-results=10"'
type='text/javascript'/>
</b:if>
  • Por último buscamos esta la linea <div class='post-footer-line post-footer-line-3'> y debajo de ella pegamos esto:
<b:if cond='data:blog.pageType == "item"'>
<div class='post-footer-line post-footer-line-4' id='relpost'>
<h4>Entradas relacionadas:</h4>
<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
removeRelatedDuplicates();
printRelatedLabels();
</script>
</b:if>
</div></b:if>
Lo guardamos y ya tendremos las entradas relacionadas haciendo click en una de ellas dado que no aparecen en la página principal.
Share on Google Plus

About Horacio Castro

    Blogger Comment
    Facebook Comment

3 comentarios:

  1. Horacio sabes ue probé tres veces siguiendo los pasos y me marca error... tenes idea por que puede ser?

    ResponderEliminar
  2. compa marca error algo ta mal...

    ResponderEliminar
  3. Por cualquier inconveniente que tengan pueden visitar este muy buen tutorial:

    http://elescaparatederosa.blogspot.com/2008/02/entradas-relacionadas.html

    ResponderEliminar