Widgets

How to make Sitemap Page With Post Titles Separated by Month and Year

In this particular tutorial I would like to add new enhancement of my previous post " How to Make a Sitemap ". This sitemap would separate the month and year but attached in it are the post titles. Now, let's proceed.





Another Version of Sitemap Page With Post Titles Separated by Month and Year



Step 1. Go to Blogger Dashboard
Step 2. Click New Pages >> New page >> Blank Page
Step 3. Switch the Blogger Page Editor page in the HTML mode
Step 4. Copy the code below and paste it your Blogger Post Editor page (new post)


<script>
var numposts = 1000;
var showpostdate = true;
var showpostsummary = false;
var numchars = 200;
var lastDate ="";
</script>
<script>
function rp(json) {
document.write('<ul style=list-style-type:none;>');
for (var i = 0; i < numposts; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}
posttitle = posttitle.link(posturl);
var readmorelink = "(more)";
readmorelink = readmorelink.link(posturl);
var postdate = entry.published.$t;
var cdyear = postdate.substring(0,4);
var cdmonth = postdate.substring(5,7);
var cdday = postdate.substring(8,10);

var monthnames = new Array();
monthnames[1] = "Jan";
monthnames[2] = "Feb";
monthnames[3] = "Mar";
monthnames[4] = "Apr";
monthnames[5] = "May";
monthnames[6] = "Jun";
monthnames[7] = "Jul";
monthnames[8] = "Aug";
monthnames[9] = "Sep";
monthnames[10] = "Oct";
monthnames[11] = "Nov";
monthnames[12] = "Dec";
if ("content" in entry) {
var postcontent = entry.content.$t;
} else if ("summary" in entry) {
var postcontent = entry.summary.$t;
} else
var postcontent = "";
var re = /<S[^>]*>/g;
postcontent = postcontent.replace(re, "");


if (lastDate!=cdyear + monthnames[parseInt(cdmonth,10)])
{
    document.write('<li><h4>' + monthnames[parseInt(cdmonth,10)] + ' ' +cdyear +'</h4></li>');
    lastDate=cdyear + monthnames[parseInt(cdmonth,10)]
}
document.write('<li> ' + cdday +' ');
document.write(posttitle);

if (showpostsummary == true) {
if (postcontent.length < numchars) {
document.write(postcontent);
} else {
postcontent = postcontent.substring(0, numchars);
var quoteEnd = postcontent.lastIndexOf(" ");
postcontent = postcontent.substring(0,quoteEnd);
document.write(postcontent + '...' + readmorelink);
}
}
document.write('</li>');
}
document.write('</ul>');
}
</script> 

<script src="http://www.yourwebsitenamehere.com/atom.xml?redirect=false&start-index=1&max-results=50000&orderby=published&alt=json-in-script&callback=rp"></script>

Customization:

1.  If you have published more than 1000 posts in your blog/site just change the number (1000 )  depending on your preferences.
2. If you want to hide the post date beside the post title change the text (true) with false.
3. The most important thing is you must replace the line (www.yourwebsitenamehere.com) with the URL of  your blog/site to make this trick work on your blog.

Step 5. Publish it in  an earlier date.
 Friends, hope like this little trick. Feel free to write comment/suggestion or even additional info below this article to hear your view and feedback.



Take care and Enjoy!


No comments:

Post a Comment

Recent Posts

Related Posts Plugin for WordPress, Blogger...

Definition List