Welcome to richardsweeney.com v4.0!

A warm welcome to the fourth incarnation of my website and blog. The site is (finally) now fully responsive (the previous incarnation was my very first attempt at responsive design) and the theme design is (obviously) my own. For those of you don’t know what ‘responsive’ means: the website adjusts to different screen sizes, reflowing content layout as required for better readability.

My goal this time round was (as well as creating a responsive site) to not use any WordPress or JavaScript plugins. This time I wanted to build everything myself. I’m delighted to say that I managed it all except for the plugin I use for server-side caching, which is not my area of expertise. WP Super Cache is such an excellent solution and so very easy to implement, so I used that.

So, what did I do then?!

Well, I build the contact form on the contact page. The form uses JavaScript validation (my own) and is submitted via AJAX. I used Akismet for spam protection on the server-side and a honey-pot* as an extra anti-spam measure. Works great.

I also wrote my own comment form script (see below this post!), which again uses Akismet for spam checking and simple JavaScript validation. Comments are submitted via AJAX.

Speaking of AJAX… I also wrote a custom pagination solution for my blog in AJAX. I used the HTML5 history API to push changes in page to the URL so all pages will have proper, linkable URLs. I freely admit here that I used Benjamin Lupton’s History.js to sort out all the rough edges of different browser implementations of the API!

Also on the blog page I use a custom excerpt function that’s a bit more versatile than WordPress’ built in the_excerpt().

I also wrote my own script in jQuery to fetch my Instagram feed (check out the right-sidebar/below this post). Fetched results from the Instagram API are cached in localStorage (where available) for speedy subsequent page visits. For good measure I also wrote the lightbox script used to enlarge the images. The twitter feed is also written in jQuery and all scripts are loaded asynchronously so that page load is not blocked.

That’s about it! It’s a great feeling to have such control over the entire contents & markup of a website. I ♥ WordPress.

*An input field in the form that is hidden from visitors via CSS. As it’s hidden, user’s won’t fill it out, but if form fields are filled out automatically (ie by a spam bot), it will help to show up spam.