------------------------------------------------------------2333

25 de abril de 2011

Entradas Relacionadas en Blogger


Este es un genial truco si quieres que tus visitas se incrementen ya que si un lector ve una entrada que le guste seguro que se quedara mas tiempo en vuestro blog.
El truco da como resultado entradas relacionadas por etiquetas y titulos como la siguiente:





Pasos:

1.Vas a Diseño-Edicion HTML-Expandir plantillas de Artilugio busca el codigo ]]></b:skin>  y debajo de el pega 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>

2. Ahora busca esta línea:

<b:loop values='data:post.labels' var='label'>
Y justo antes del siguiente </b:loop> pega esto:

<b:if cond='data:blog.pageType == "item"'>
<script expr:src='"/feeds/posts/default/-/" + data:label.name +
"?alt=json-in-script&amp;callback=related_results_labels&amp;max-results=10"'
type='text/javascript'/>
</b:if>

3. Ahora busca el siguiente codigo:
<div class='post-footer-line post-footer-line-3'>

Y debajo de el codigo anterior pega lo siguiente
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='post-footer-line post-footer-line-4' id='relpost'>
<h4>Entradas relacionadas:</h4>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
removeRelatedDuplicates();
printRelatedLabels();
</script>
</b:if>
</div></b:if>

Guarda los cambios y listo. El resultado lo verás haciendo click en una entrada de tu blog, pues no se mostrará en la página principal.

5 comentarios:

  1. gracias muy bueno aunque prefiero el que compartiste de imagenes

    ResponderEliminar
  2. @Jorge Luis Si esa tambien es una buena opcion pero prefiero esta por lo menos ahora uso esta :|:|

    ResponderEliminar
  3. Eits helpme!

    no tiene mi plantilla esto




    que hago, mi blog es www.sotypc.com

    ResponderEliminar
  4. NO se ve el codigo, bueno es la segunda instruccion la de loop =S, hay alguna otra manera?

    ResponderEliminar
  5. Eduardo_mb. osea lo que dices es que no encuentras el codigo en tu plantilla,por favor se mas explicito ;)

    ResponderEliminar