Tuesday, November 22, 2011

How to add Blogger Auto Read more with thumbnail

Expandable post or popularly known as “read more” is a feature that make your blog shows only a part of your posts on index pages i.e. home, labels and archive blogger pages. At the end of each preview there will be a link to the post page, usually attached to the phrase “read more”.

This nice trick will automatically create post summaries with thumbnails.You don't need to add any extra code in every blogger post that you make. This is very handy if you have lots of long articles all on one page.

Applying auto read more

Here we go:
  1. Login to your Blogger account.
  2. Go to Dashboard > Design > Edit HTML
  3. Back up your template
  4. Check the Expand Widget Templates check box on top right of the HTML window.
  5. In the code window, look for </head> line.
  6. Add the Read More code below right after that line:

<!-- Auto read more script Start -->
<script type='text/javascript'>
var thumbnail_mode = "yes"; //yes -with thumbnail, no -no thumbnail
summary_noimg = 430; //summary length when no image
summary_img = 340; //summary length when with image
img_thumb_height = 200;
img_thumb_width = 200;
<script type='text/javascript'>
function removeHtmlTag(strx,chop){ 
  var s = strx.split("<"); 
  for(var i=0;i<s.length;i++){ 
    s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length); 
  strx =  s.join(""); 
 chop = (chop < strx.length-1) ? chop : strx.length-2; 
 while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; 
 strx = strx.substring(0,chop-1); 
 return strx+'...'; 

function createSummaryAndThumb(pID){
 var div = document.getElementById(pID);
 var imgtag = "";
 var img = div.getElementsByTagName("img");
 var summ = summary_noimg;
        if(thumbnail_mode == "yes") {
 if(img.length>=1) { 
  imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
  summ = summary_img;
 var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
 div.innerHTML = summary;
<!-- Auto read more script End -->

Add Auto Read More

Now, find this line: <data:post.body/>

and replace the line with this code:

<!-- Auto read more Start -->
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<div expr:id='&quot;summary&quot; +'><data:post.body/></div>
<script type='text/javascript'> createSummaryAndThumb(&quot;summary<>&quot;);
<a class='more' expr:href='data:post.url'>[read more...]</a>
<!-- Auto read more End -->

Click Preview. If it works, then click Save Template. 

Customizing the snippet

You can customize the read more by changing the values of the variables below:
  1. thumbnail_mode: set to “yes” if you want to show thumbnail with text summary. Set to other than “yes” to show only text summary.
  2. summary_img: specify the number of characters (including spaces) you want to show in the summary, with thumbnail.
  3. summary_noimg: specify the number of characters (including spaces) you want to show in the summary, when there is no thumbnail.
  4. img_thumb_height and img_thumb_width: specify the thumbnail height and width (in pixels).
  5. You also can change the words [Read more...] with your own if you want.

That’s it, enjoy!


Post a Comment