Me pregunta el Dr. Pagé cómo poner las entradas relacionadas en Blogger. Rosa hizo una excelente adaptación del código de JMiur para conseguir esta herramienta, la cual se basa en la recopilación de palabras y etiquetas que se relacionen con la entrada en cuestión.
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'>Ahora busca esta línea:
//<![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>
<b:loop values='data:post.labels' var='label'>Y justo antes del siguiente </b:loop> pega esto:
<b:if cond='data:blog.pageType == "item"'>Ya sólo busca esta línea:
<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>
<div class='post-footer-line post-footer-line-3'Y pega debajo de ella lo siguiente:
<b:if cond='data:blog.pageType == "item"'>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.
<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>
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. Imprimir artículo
No hay comentarios:
Publicar un comentario