Humanized History for WordPress 2007.10.08(posted on 08 October 2007)

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!


4 replies to Humanized History for WordPress 2007.10.08 | Use a feed to Follow replies to this article | TrackBack URI

  1. Bruno says:

    I’ve tried it on my site and it basically loads up all of the posts present on the database :-)

    wp 2.3

  2. Steve J Bayer says:

    Hey nice module I’m trying to implement it on my site at

    I’ve added the following in function.php

    function template_post_display()  {
        if (is_search()) {
            // display post for paged search results
        } else {
            // display post for paged archives

    The website using the cutline theme with WPMU 1.3 and feedwordpress. I’ve gone into archive.php, index.php, page.php and search.php and deleted the call for navigation links and activated the plug in and added styling to style.css as per the plugins readme.

    The page seems to get load up to the first page and ‘getting more content for you’ just flashes without loading anything.

    Did I skip anysteps?

  3. Premasagar says:

    Fantastic! This looks exciting…

Post a reply

Posting comments

This form is for public comments. Consult About: Comments for policies and copyright details.

You can register for an account and sign in to verify your identity and avoid spam traps.

Formatting Comments

Use Markdown syntax for formatting.

  • *emphasis* = emphasis
  • **strong em** = strong em
  • [link]( = link
  • `[_no_](format)` = [_no_](format)

Code blocks should be indented with four or more spaces at the start of each line:

    function _foo ($_bar) {
        return $_bar;
    } /* foo() */
Your e-mail address will not be published.