Membuat Related Post

Posted by Daniel DPK

Berikut adalah tips membuat related post berdasarkan JSON (JavaScript Object Notation)format. Tips ini membuat related post berdasarkan label postingan yang dibuat dalam sebuah blog. Dan sebagai informasi tips ini mungkin krang efektif apabila label dalam blog anda memakai karakter URL seperti tanda tanya(?)atau garis miring(/).

Pertama masuk ke edit HTML dan jangan centang kolom Expand Widget Template. Lalu copy kode dibawah ini ke dalam page header :

<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>

Kedua, simpan perubahan lalu centag tanda Expand Widget Template kemudian cari kode dibawah ini:

<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>

kemungkinan kode tersebut berada di bagian bawah di the post-footer-line section apakah di line -1, -2, atau -3. Setelah anda menemukannya lalu ganti kode tersebut dengan kode dibawah ini

<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&amp;callback=related_results_labels&amp;max-results=10"' type='text/javascript'/>
</b:if>
</b:loop>
</b:if>


Ketiga,simpan hasil edit diatas kemudian masuk ke Template -> Page Elements dan tambahkan HTML/Javascript widget. Setelah itu masukkan kode di bawah ini:

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


Keempat, masuk kembali ke Edit HTML, centang tanda Expand Widget Template, lalu cari HTML/Javascript widget yang baru saja anda tambahkan. Kode tersebutakan kelihatan seperti dibawah ini dan tambahkan kode yang dicetak tebal pada script anda.

<b:widget id='HTML13' locked='false' title='Related Posts' 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>


Ada beberapa jumlah postingan yang berubungan yang bisa ditampilkan dan anda bisa mengubahnya sesuai keinginan anda. Selamat mencoba dan semoga berguna bagi anda.

0 comments:

Post a Comment

Feel free to drop comment and support for Astaga.com Portal Lifestyle On The Net.I'll reply to you soon as possible.