Ubuntu / Linux news and application reviews.

Highly Customizable Related Posts with Thumbnails for Blogger

Related Posts with Thumbnails for Blogger

Related Posts with Thumbnails for Blogger is a widget very similar to LinkWithin script but very customizable:

  • maximum number of related posts - you can choose how many related posts to be displayed
  • title of the widget - you can change the "Related posts" title to whatever you like
  • JavaScript hosted on Google Code website so it loads very fast
  • change colors and everything else by using CSS

For more info and instructions on how to add this widget to your Blogger template, see the article on BloggerPlugins.

Related posts (articles) for Blogger

The second thing we really needed for our brand new blog was to have a related posts section under each post, which we needed to show up under any post, but not on the main page. We found a lot of ways to do this, but either some of them used the same post in related posts, or had the tags listed in related posts and other things we did not like. But in the end, we found a way to do this and now we are going to share it with you.
So, in order for your blog to have related posts under each post, go to Layout > Edit HTML, then check "Expand Widget Templates" and search for this: <data:post.body/>



And under it, paste this code:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='similiar'>

<!-- *****************Related Articles by Labels****************** -->

<!--
-->

<div class='widget-content'>
<p/><h3>Related Posts by categories</h3>

<div id='data2007'/><br/><br/>
<script type='text/javascript'>

var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
var maxNumberOfPostsPerLabel = 5;
var maxNumberOfLabels = 10;


function listEntries10(json) {
var ul = document.createElement(&#39;ul&#39;);
var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i &lt; maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;

for (var k = 0; k &lt; entry.link.length; k++) {
if (entry.link[k].rel == &#39;alternate&#39;) {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement(&#39;li&#39;);
var a = document.createElement(&#39;a&#39;);
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 &lt; json.feed.link.length; l++) {
if (json.feed.link[l].rel == &#39;alternate&#39;) {
var raw = json.feed.link[l].href;
var label = raw.substr(homeUrl3.length+13);
var k;
for (k=0; k&lt;20; k++) label = label.replace(&quot;%20&quot;, &quot; &quot;);
var txt = document.createTextNode(label);
var h = document.createElement(&#39;b&#39;);
h.appendChild(txt);
var div1 = document.createElement(&#39;div&#39;);
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById(&#39;data2007&#39;).appendChild(div1);
}
}
}
function search10(query, label) {

var script = document.createElement(&#39;script&#39;);
script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
+ label +
&#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
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 = &quot;<data:label.name/>&quot;;
var test = 0;
for (var i = 0; i &lt; labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel &lt; maxLabels) {
search10(homeUrl3, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>

</div>

</b:if>


The bold stuff is configurable, so change it as you will. Also, if you do not wish to have the tags above each related link, delete this line: div1.appendChild(h); (that's how we have the related links here on WebUpd8)

Good luck!