Humanized History for WordPress

Project Tip Jar

Your generous gifts make ongoing support and development for Humanized History for WordPress possible.

$0.00 donated in the past 6 months.

  • Author: Charles Johnson
  • License: GPL. See source code for details on the provenance of the code.
  • Status: Actively supported, but basically complete. See News for updates about bug fixes or other tweaks.

This plugin implements a Humanized History feature for WordPress archives, using some PHP glue on the back end and some unobtrusive JavaScript on the front-end. In JavaScript-enabled browsers, Humanized History eliminates the need for users to click on “previous posts” links to read back through your archives; instead, when users get near the bottom of the current page of posts, the included JavaScript automatically displays more posts for them at the bottom of the page, providing a magic endless scrollbar that scrolls through your entire archives, in place of traditional page chunking.

Search robots and browsers without JavaScript enabled will see the same old pages with previous page/next page links, so you lose nothing in accessibility or friendliness to search engines.

The plugin was inspired by the discussion of the concept by Aza Raskin at Humanized (2006-04-25): No More Pages?. To see a sample of the feature as implemented in WordPress, go to and scroll down toward the bottom of the page.

Don’t make your readers ask you for more content. Just give it to them.



Humanized History URI and directory fixed

Thanks to some help from the folks at the WordPress Plugin Directory, the URI and the plugin directory for Humanized History for WordPress are no longer affected by my boneheaded typo. You can now review and download the plugin from the URIs that God intended, and Enjoy!

Humanized History 2008.02.10 released

Version 2008.02.10 of Humanized History for WordPress is now available for download.

This release fixes a bug in the initial release, version 2007.10.08, which could cause the plugin to insert inappropriate HTML code into your blog’s feeds (thus making them invalid Atom or RSS) under certain conditions.

It is also the first public release of Humanized History to be listed in the WordPress Plugins Directory and hosted in the WordPress Plugins Repository. This has required a bit of re-arranging in plugin files; if you notice anything that seems amiss, let me know.

Incidentally, the current URI for my plugin,, is the result of making a typo in the process of applying for the hosting. I have written in to the Repository administrators to get it fixed to what it should be, I don’t know how long it will take to get it fixed. But in any case, in the meantime, I’ll just say here that, in spite of the URI, my plugin has nothing in particular to do with FeedWordPress, except in that they are both written by the same author. You can happily use Humanized History without FeedWordPress, or FeedWordPress without Humanized History, or both together at the same time, as you prefer.

Humanized History for WordPress 2007.10.08

A new Humanized History plugin for WordPress 2.x is now available for download.

The plugin was inspired by the points that Aza Raskin made at Humanized 2006-04-25: No More Pages?

Of course, this page-chunking phenomenon isn’t limited to search sites. It’s used everywhere from blogs to forums, from e-commerce sites to e-mail programs. And it’s surprising how often one finds oneself just giving up and going somewhere else when one has reached the end of a page.

The problem is that every time a user is required to click to the next page, they are pulled from the world of content to the world of navigation: they are no longer thinking about what they are reading, but about about how to get more to read. Because it breaks their train of thought and forces them to stop reading, it gives them the opportunity to leave the site. And a lot of the time, they do.

The take away? Don’t force the user to ask for more content: just give it to them.

The Humanized History for WordPress plugin allows you to just give it to your readers. The trick was to develop a way for the plugin to make those posts — potentially hundreds of posts stretching over several years — all available to readers without making them wait for everything to download. (Not only would that make everyone wait for those posts to download; it would also make the website completely inaccessible for mobile devices and other alternative web platforms.) The solution to the problem was some PHP on the back end, and a little bit of unobtrusive JavaScript on the front end, inspired by Humanized’s implementation, which work together to automatically display the older posts as you scroll down towards the bottom. That way, for users with conventional web browsers there’s always more waiting for you to read as you scroll down (at least, until you reach the earliest post). But mobile users and other people who have JavaScript turned off can still access the website the same way they already were, with no substantial change.

I implemented a version of this trick on a couple of other websites that I run (1, 2) using a bit of ugly spit-and-bailing-wire kludgery in the WordPress templates before I bothered to sit down and package it up as a plugin. But I think it’s a neat feature, and I’ve gotten a couple of requests for help in implementing it on other WordPress weblogs. Hopefully this release should make that easier to do.

The plugin has a couple of weak or kludgy aspects, which are probably inevitable due to certain limitations of WordPress. Be sure that you read the installation instructions and the section on templates and styling carefully. To make good use of this plugin you will, unfortunately, probably need at least a passing familiarity with editing WordPress templates.

Let me know what you think — and whether you notice anything weird or broken. Enjoy, and scroll on!