25 Sep

Poner entradas relacionadas en tu artículos (entradas) de blogspot

Primero entra a Diseño > Edición de HTML y haz un respaldo de tu plantilla por si no obtuvieras los resultados esperados.

Luego con los artilugios expandidos busca la etiqueta ]]></b:skin> y justo debajo de ella 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>

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>

Ya sólo busca esta línea:

<div class=’post-footer-line post-footer-line-3′

Y pega debajo de ella 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.

NOTA: Es importante que tus entradas tengan al menos una etiqueta, y que las etiquetas se muestren en el post para que las entradas relacionadas funcionen.

Share this

Comments (5)

sinetiquetarblog
25 septiembre, 2012 Reply

Me gustan estos post, a ver si aprendo algo, ja, ja. Un besotes guapo.

José Luis IB
25 septiembre, 2012 Reply

jajaja pues prima, yo no lo he conseguido... A ver si poco a poco lo consigo jajaja. Tampoco tengo mucho tiempo por que estoy haciendo un par de webs , y esto pues se me había ocurrido que no lo tenía. Pero nada.. xD Un besitooo

José Luis IB
25 septiembre, 2012 Reply

Pues prima si que funciona para otras plantillas, en esta en particular no... pero por ejemplo en la del movil si.. y si pongo otra también.

Miss Chloe
29 diciembre, 2012 Reply

Gracias!!! Qué bien nos viene a las "poco apañadas" encontrar estos post en internet, tan claritos y bien explicados. No sé lo que he hecho pero hecho está y objetivo cumplido ;)

José Luis IB
29 diciembre, 2012 Reply

Me alegro que te haya servido ^ ^

Leave a reply