Blogger/ Blogspot widget “ best Related posts by categories” shows  related posts according to user defined categories at the end of each post.  Another widget “best Related posts widget for blogger” displays  only a list of related posts but this widget shows posts under different labels,  categories or tags. You can display desired posts under desired categories and also can specify the number of  posts to display in your blogger blog. Needless to say, this widget will help  your blog users to explore more related posts under the categories they are  interested in.
Follow the specific instructions below to add this
hack widget to your blog.
Follow the specific instructions below to add this
hack widget to your blog.
Follow the below steps properly and in order to have the similar widget you see in the pic above.
Widget Adding Instructions / Steps: 
1. Go to Blogger Dashboard - click Edit Layout - then click Edit HTML
Wait: Before Editing your Template, Save a  copy of your current template by clicking 'Download Full  Template' in 'Edit HTML' page of the Blogger  'Layout' Window and 'Preview' the changes  before Saving.
2. Check the ‘expand Widgets Template Box” as shown in the figure below.

3.Then Search (Ctrl+F) the code given below in your template:
<data:post.body/> 
4. Copy and Add the code given below just after the above code:
<b:if cond='data:blog.pageType == "item"'>
<div class='similiar'>
<div class='widget-content'>
<h3>Related Posts by Categories</h3>
<div id='data2007'/><br/><br/>
<script type='text/javascript'>
var homeUrl3 = "<data:blog.homepageUrl/>";
var maxNumberOfPostsPerLabel = 4;
var maxNumberOfLabels = 10;
maxNumberOfPostsPerLabel = 100;
maxNumberOfLabels = 3;
function listEntries10(json) {
var ul = document.createElement('ul');
var maxPosts = (json.feed.entry.length <= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i < maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement('li');
var a = document.createElement('a');
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 < json.feed.link.length; l++) {
if (json.feed.link[l].rel == 'alternate') {
var raw = json.feed.link[l].href;
var label = raw.substr(homeUrl3.length+13);
var k;
for (k=0; k<20; k++) label = label.replace("%20", " ");
var txt = document.createTextNode(label);
var h = document.createElement('b');
h.appendChild(txt);
var div1 = document.createElement('div');
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById('data2007').appendChild(div1);
}
}
}
function search10(query, label) {
var script = document.createElement('script');
script.setAttribute('src', query + 'feeds/posts/default/-/'
+ label +
'?alt=json-in-script&callback=listEntries10');
script.setAttribute('type', 'text/javascript');
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 = "<data:label.name/>";
var test = 0;
for (var i = 0; i < labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length <= maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel < maxLabels) {
search10(homeUrl3, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>
</div>
</b:if>
5. Save your Template. That’s it.
Widget Customization 
maxNumberOfLabels = 3;

No comments:
Post a Comment
Any Comments ?