Ben is a lifelong Nintendo fan who likes to build websites, and make video games. He buys way too much Lego.
I really like the idea of a Tumblog – and even have one on Tumblr.com – but I don’t promote it anywhere. Conceptually it’s great – but I don’t like not having control over my content.
What I would really like is to have a site that I can design and control entirely… I also want to be able to automate everything. Automation is brilliant – I use it wherever possible. My goal is to pull the content in from all my different social networks, blogs, and websites and then share it in a single location.
I already have a personal site on my name domain – bengillbanks.co.uk – and this is where I see the new site living.
Recently I noticed a website called WPReader was tweeting my articles. When I checked out the website I saw that it was a bookmarking site that collates posts from prominent WordPress sites and posts (and tweets) the links. I could see it was done automatically, and it was clearly a WordPress site, so I contacted the author of the site and got talking to him.
Anton turned out to be a really helpful developer who also lives in the South of England (clearly the best place to live! :)). We had a little chat and he sent me some code showing how WPReader worked. The code was a standalone script and I wanted to create something that worked as a plugin that could be used in themes – so I developed a very quick prototype.
So, what I have done is created a really simple WordPress plugin that lets me add some websites to aggregate content from and then sit back and watch my site update.
What the plugin does is use custom WordPress post types to store the sites that are to be aggregated from. I then make use of the WordPress cron to update the site once an hour – creating a new post each time new content is found in the feed. To ease load on my server I don’t check all the websites all the time – most sites don’t update hourly anyway.
To improve things further I added hooks so that other themes and plugins can sit on top of the aggregation plugin. I also added things I called modifiers. These modify the website content differently for each website. For instance I have a Youtube modifier – and this converts the post format to Video so that, if you have a theme that supports custom post formats the post will be displayed as a video. I’m going to be creating a set of default modifiers for popular sites, and can extend them inside themes as well.
Content Aggregation in Action
To test I have added support for the content aggregation plugin to the Nominate WordPress theme. I then set the plugin up on WPVote.com so that new content can be posted automatically from a group of websites I select.
I have been running the plugin on WPVote.com for a couple of weeks now and it’s been working really well. I see a few things I’d like to add to improve it – content filters being a big addition (to make things more relevant) but overall I’m really pleased with how it’s looking.
Next up I want to get back to my social aggregation theme for bengillbanks.co.uk. I have a design mocked up and am now putting it together – hopefully it will be live in the next week or two.