Question

I'm customizing a Tumblr blog and I cannot find a good way to access all the posts by date. Tumblr allows you to display a particular post from a day using their Day Pages, but I want to find all posts and their dates, and then display them as a list sub-divided by months and years (really, it's like Wordpress's default sidebar). See example image here: http://i.stack.imgur.com/28gGH.png

I've been looking through Tumblr's Custom Theme Documentation but have not found a way to generate this information. Perhaps they offer it through their API? I haven't found anything yet.

I appreciate any direction here. Thanks.

Was it helpful?

Solution

I found the best way to do it is by pulling it from your blog's own RSS feed. Add this code after jquery has been included:

<script>
  $(function() {
    var url = '/rss';
    var $list = $('#recent-posts');
    $.ajax({
        url: url,
        type: 'GET',
        dataType: 'xml',
        success: function(data) {                
            var $items = $(data).find('item');
            $items.each( function() {
                var $item = $(this);
                var link = $item.children('link').text();
                var title = $item.children('title').text();
                if (link && title) {
                    $list.append($('<li><a href="' + link + '">' + title + '</a></li>'));
                }
            });
          }
      });
  });
</script>

It will go out and make a list of ALL blog posts, if you want to limit it so a certain number of posts you can check the index value passed into the $items.each() functions: http://api.jquery.com/jquery.each/

Also make sure to include the list in your sidebar:

<!-- RECENT POSTS -->
  <ul id="recent-posts"></ul>
<!-- RECENT POSTS -->

Note: the list will probably not appear in preview mode, only once you save your changes and go to the live blog, will it be able to pull from /rss

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top