COMPLETE AUTOPILOT INCOME GENERATOR

Thursday, June 16, 2011

How To Create Blogger Related Post Widget

Blogger doesn't have ready to be used Related Post Widget.  But, we still can create related post widet based on label.  This related post widget will use Label in Blogger Posting.  Posting with the same label will be displayed in Related Post Widget.  So, the prerequisite to get Blogger Related Post Widget working is you must label in every blogger posting.
Here are steps configuring Blogger Related Post Widget.
1.  You must have label in every blogger posting.
2.  Login to Blogger.
3.  In Blogger Dashboard, choose blog you want to edit, Layout, then Edit HTML, choose Expand Widget Templates.
4.  Add this code below and paste after <head> and before </head> tag or just paste below <head> tag.

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

5.  Find Widget Code below,


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

Add code with bold blue text below,


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

6.  Save Tempate7.  Open Layout-->Page Element, add new HTML/JavaScript Widget.  Paste code below, and name it Related Post and then Save.

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

8.  Back to Layour-->Edit HTML, click Expand Widget Templates.  Find HTML/JavaScript Widget Related Post Widget we've created before.  Add code with bold and blue below, so that Related Post Widget will show only in Post page.

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

9.  Save Template.

No comments:

Post a Comment