29 Feb 2012

Show Post Excerpts on Homepage with Thumbnails - Blogger



This blog is all about giving you the tools and options to design your blog to look however you want it. So today I'm going to show you how to show post excerpts on your front page instead of full posts. This method will show an excerpt with a post thumbnail and a 'continue reading' link.

So first of all navigate to Dashboard>Template>Edit HTML>Proceed.

Tick the 'expand widgets' box. Search for the </head> tag and place the following code above it.

<script type='text/javascript'>var thumbnail_mode = "no-float" ;
summary_noimg = 300;
summary_img = 350;
img_thumb_height = 200;
img_thumb_width = 300;
</script>
<script type='text/javascript'>
//<![CDATA[
function removeHtmlTag(strx,chop){
if(strx.indexOf("<")!=-1)
{
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
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(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;
}


//]]>
</script>


 

Now search for the following line of code.

<data:post.body/>

Replace it with the code below:

<b:if cond='data:blog.pageType == &quot;static_page&quot;'><br/>
<data:post.body/>
<b:else/>


<b:if cond='data:blog.pageType != "item"'>

<div expr:id='"summary" + data:post.id'><data:post.body/></div>
<script type='text/javascript'>createSummaryAndThumb("summary<data:post.id/>");
</script> <span class='rmlink' style='float:right;padding-top:20px;'><a expr:href='data:post.url'> continue reading "<data:post.title/>"</a></span>


</b:if>
<b:if cond='data:blog.pageType == "item"'><data:post.body/></b:if>
</b:if>


You'll see that I have bolded the words 'continue reading' you can change those words to read on or to whatever you like.

Hit save.

That is all there is to it :)

1 comment:

  1. Hi Faye, wondering if you could help, (if you have time of course) I've copied this tutorial exactly as you've said (at least I think I have) and it's coming up with this error message everytime: Your template could not be parsed as it is not well-formed. Please make sure that all XML elements are closed properly. XML error message: Open quote is expected for attribute "{1}" associated with an element type "type".
    Error 500. Any ideas at all? Thanks. Nic x

    ReplyDelete