June 29, 2009

Show related Posts in Blogger

Its essential tactic to show related Posts in Blogger , to improve usage statics and page views . If a definite number of related articles are shown at the bottom of each posts,there is chance for the reader to click on those links and head over to the next page . Related posts widget on Blogger depends on how you name your post labels .






Here's how you can do that ,
1. Open your Blogger template's Layout and select Edit HTML .
2. Download full template for future use .
3. Click on expand widgets templates.
4. Press Cntrl+F and search for " </head> " tag and insert the following script above that line .

<style>

#related-posts {
float : left;
width : 540px;
margin-top:20px;
margin-left : 5px;
margin-bottom:20px;
font : 11px Verdana;
margin-bottom:10px;
}
#related-posts .widget {
list-style-type : none;
margin : 5px 0 5px 0;
padding : 0;
}
#related-posts .widget h2, #related-posts h2 {
color : #333333;
font-size : 13px;
font-weight : normal;
margin : 5px 7px 0;
padding : 0 0 5px;
}
#related-posts a {
color : #054474;
font-size : 11px;
text-decoration : none;
}
#related-posts a:hover {
color : #054474;
text-decoration : none;
}
#related-posts ul {
border : medium none;
margin : 10px;
padding : 0;
}
#related-posts ul li {
display : block;
background : url("http://i263.photobucket.com/albums/ii150/mohamedrias/newconcept_bullet.png") no-repeat 0 0;
margin : 0;
padding-top : 0;
padding-right : 0;
padding-bottom : 1px;
padding-left : 16px;
margin-bottom : 5px;
line-height : 2em;
border-bottom:1px dotted #cccccc;
}

</style>

<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. Similar to step 4 , find out section .
<data:post.body/>
. Anything you post under this line would appear at end of each posts.
6. Now paste the following code below that line .

<b:if cond='data:blog.pageType == "item"'>
<div id="related-posts">
<h2>Other Recommended Posts on <b:loop values='data:post.labels' var='label'><data:label.name/><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=5"' type='text/javascript'/></b:if></b:loop> </h2>

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

</div></b:if>


7. Save your template


Now if everything went fine , your post pages would show related articles depending on the applied label.You can customize the color and font size of the widget by editing the bold elements in the CSS code(download 1).

#related-posts .widget h2, #related-posts h2 {
color : #333333;
font-size : 13px;
font-weight : normal;
margin : 5px 7px 0;
padding : 0 0 5px;
}


The default number of related posts are 5 as set on the code . You change it by editing max-results=5 in the JavaScript ( download 2) code to a suitable value .
Bookmark this post:
Hotklix Hotklix StumpleUpon DiggIt! Del.icio.us BlinklistGoogle Yahoo Furl Technorati Simpy Spurl Reddit I'm reading: Show related Posts in Blogger ~ Twitter FaceBook

Related Posts :



0 comments:

Post a Comment