Acum cateva zile un vizitator ma intreba daca se poate publica in blogger lista posturilor similare. Sigur ca se poate ! Posturile similare “related posts” nu este un lux exclusiv blogurilor bazate pe platforma wordpress. Procedura este destul de complexa asa ca urmariti cu atentie urmatoarele instructiuni.

Click layout/modifica Html si cautati tagul <head> imediat dupa el introduceti codul urmator :

<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 r = Math.floor((relatedTitles.length - 1) * Math.random());

var i = 0;

document.write(’<ul>’);

while (i < relatedTitles.length && i < 20) {

document.write(’<li><a href=”‘ + relatedUrls[r] + ‘”>’ + relatedTitles[r] + ‘</a></li>’);

if (r < relatedTitles.length - 1) {

r++;

} else {

r = 0;

}

i++;

}

document.write(’</ul>’);

}

//]]>

</script>

Salva il modello, acum espandi i modelli widget si cautati acest cod :

<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>

Si inlocuiitil cu acesta :

<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
<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>
</b:loop>
</b:if>

Salvati Totul.

Acum mergeti la layout/ elementi pagina si creati un nou element HTML, datii numele : ‘Articole similare’, iar in interior scrieti urmatorul cod :

<script type="text/javascript">
removeRelatedDuplicates();
printRelatedLabels();
</script>

Cu ajutorul drag & drop, pozitionati wgetul “articole similare” sub elementul Post sul blog” ( eu, in locul Articole Similare am numit wgetul “Articoli interessanti”) asa cum puteti vedea in acest screenshoot:

correlati2.jpg

Acum sa trecem la ultima parte, poate cea mai dificila …..fiti foarte atenti. intoarcetiva la layout/modifica Html ed espandi i modelli widget. Cautati acest cod si adaugati caracterele in blod ( rezultatul trebuie sa fie asemanator urmatorului cod )

<b:widget id='HTML13' locked='false' title='Articoli correlati' type='HTML'>
<b:includable id='main'>
<b:if cond=’data:blog.pageType == “item”‘>
<!– only display title if it’s non-empty –>
<b:if cond=’data:title != “”‘>
<h2 class=’title’><data:title/></h2>
</b:if>
<div class=’widget-content’>
<data:content/>
</div>

<b:include name=’quickedit’/>
</b:if>
</b:includable>
</b:widget>

Nota : id=’Html13′ este numarul ultimului wgetului, asa difera de la blog la blog. daca ai dubi potzi arunca o privire pe urmatorul cod :

correlati3.jpg

Guida tradusa de la PurpleMoggy’s Blog