Lista de post relacionados saiba como criar

Nesta dica vamos ver como adicionar uma lista de posts relacionados no final de cada postagem. Este ‘hack’ utiliza a facilidade do JSON para recuperar as tags (marcadores) e com o tratamento delas, montar uma lista com os links dos posts relacionados.

Este ‘hack’ é uma modificação do código obtido em www.jackbook.com.

Observações Importantes:

1 - antes de aplicar as alterações em seu blog, faça as modificações em um blog de testes (ainda não tem? crie um já !!!), para não prejudicar seu site que está em produção caso aconteça algo de anormal.

2 - Sempre faça um backup do template antes de realizar qualquer alteração no código HTML.

3 - Ao copiar o código verifique se todas as aspas (simpes e duplas) estão corretas.

Vamos ver agora como inserir a lista de posts relacionados.

1 - Clicar em ‘Modelo‘ (layout) e depois em ‘Editar HTML‘:

2 - Clicar em ‘Expandir modelos de widgets‘:

3 - Procurar pelo seguinte trecho de código:


<data:post.body/>

incluir o código a seguir logo ABAIXO da tag <data:post.body/>

<!-- INICIO Posts Relacionados por Marcador -->
<b:if cond='data:blog.pageType == "item"'>
<div class='similiar'>
<div class='widget-content'>
<h3>Posts Relacionados por Marcador</h3>
<div id='data2007'/><br/><br/>
<script type='text/javascript'>

var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
var maxNumberOfPostsPerLabel = 4;
var maxNumberOfLabels = 10;

maxNumberOfPostsPerLabel = 100;
maxNumberOfLabels = 3;


function listEntries10(json) {
var ul = document.createElement(&#39;ul&#39;);
var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i &lt; maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;

for (var k = 0; k &lt; entry.link.length; k++) {
if (entry.link[k].rel == &#39;alternate&#39;) {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement(&#39;li&#39;);
var a = document.createElement(&#39;a&#39;);
a.href = alturl;

if(a.href!=location.href) {
var txt = document.createTextNode(entry.title.$t);
a.appendChild(txt);
li.appendChild(a);
ul.appendChild(li);
}
}
for (var l = 0; l &lt; json.feed.link.length; l++) {
if (json.feed.link[l].rel == &#39;alternate&#39;) {
var raw = json.feed.link[l].href;
var label = raw.substr(homeUrl3.length+13);
var k;
for (k=0; k&lt;20; k++) label = label.replace(&quot;%20&quot;, &quot; &quot;);
var txt = document.createTextNode(label);
var h = document.createElement(&#39;b&#39;);
h.appendChild(txt);
var div1 = document.createElement(&#39;div&#39;);
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById(&#39;data2007&#39;).appendChild(div1);
}
}
}
function search10(query, label) {

var script = document.createElement(&#39;script&#39;);
script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
+ label +
&#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
document.documentElement.firstChild.appendChild(script);
}

var labelArray = new Array();
var numLabel = 0;

<b:loop values='data:posts' var='post'>
<b:loop values='data:post.labels' var='label'>
textLabel = &quot;<data:label.name/>&quot;;
var test = 0;
for (var i = 0; i &lt; labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel &lt; maxLabels) {
search10(homeUrl3, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>

</div>
</b:if>
<!-- FIM Posts Relacionados por Marcador -->

5 - Clicar em ‘Visualizar‘ se não apresentar erros clicar em Salvar.

Pronto, a lista de links dos posts relacionados acabou de ser adicionada no final de cada post.

Posts Relacionados: