Choosing a WordPress Theme [StudioPress and Themeforest]

I recently attended the Auckland WordPress Usergroup Meetup here in New Zealand and the talk by Kevin Trye covered More tips on WordPress Themes.

Having purchsed a handful of themes for personal use, I thought I would take 5 minutes to explain my very experience with two theme providers

  • StudioPress
  • Themeforest

Genesis Theme by StudioPress

Many developers, users and agencies choose to exclusively use the Genesis Framework when starting a build. With hundreds of themes built on the Genesis Framework, you are likely to find a theme which can get you 90% of the way from their showcase.

When you need to customise the remaining 10% of a Genesis Theme, you can do so with an framework that is common amongst all Genesis child themes. Once you use and customise your first theme, all others should follow a very familiar process.

Getting support is a pretty solid process as well – with very good documentation on all themes (including the Genesis Base theme) and blogs for everything new in genesis, Studiopress do an excellent job at keeping their customers up-to-date and informed.

You can get all the StudioPress themes and any future themes for only $499.95 – there are third-party developers who make additional themes which this price doesn’t include – but getting that level of support for $500 is a very tempting offer.

Last words: Personally, if you’re not sure about 100% jumping into the Genesis Framework for all your future builds, you can always purchase 1 or 2 themes and start from there. Because all the themes are built on the same framework, designers and developers I’ve met have found it very easy to use Genesis at the start of a new build and get the Minimum Viable Product up and running quickly.

ThemeForest (Envato)

ThemeForest offers the biggest selection of themes and authors of all reputable themes shops. With 5,600 themes available for WordPress alone, this is the starting place for most people looking to get up and running with a theme.

With such a large variety of themes to choose from, the number of authors submitting themes is much higher and as there is no common framework to build atop of (unlike Genesis), authors can build their themes however they like. The result of this is a huge variance in usability for the end user.

Often there are many different plugins which come bundled in a theme, multiple custom post types and options for the theme itself. The difference between two theme’s and their customisation could be staggering.

It’s likely that unless you are buying from the same author on Themeforest, you will find that no two themes are created the same. Here’s a few hints to get you guide your purchasing decisions:

  • Buy high: Themes with high sale and rating numbers are more likely to be `battle tested` by other users and the support / documentation will be more thorough than lower numbers (in general)
  • Buy for a niche: If you have a client looking for a dental theme, then start with one built for that niche. No use buying a car theme and struggling to customise it.
  • Show your client before you buy: This could be with screenshots, so they can’t just buy the theme themselves, but get an idea from your client whether they like the direction of the theme before buying it.
  • Buy Extended support: For the additional 20-40% in cost, most themes will allow you to purchase additional support. This will allow you to get fast responses from the Author and save you time exploring through the existing codebase looking for a fix/hack.
  • Trust Elite Authors: Elite Authors are likely using this theme and any others they are selling as their primary source of income. Therefore, its in their best interest to keep you happy and they try exceptionally hard to make a robust product (not saying non-elite author don’t, these authors are just battle-tested)
  • Don’t be too disappointed: On the off-chance you buy a theme that isn’t fit for purpose, don’t worry – there may come a time when you need that theme, so bench it for now and save it for later.

Last Words: If you like choice and options, ThemeForest is a good place to purchase themes. I’ve found support for the top themes exceptionally good and responsive. They definitely offer value for money and I’ve seen many agency websites using lightly modified ThemeForest themes across the web, so you’re likely in good company with a ThemeForest theme.

A quick note on Envato (Themeforest)

There’s always a chance you’ll find a badly written theme, but if thats the case – let the team at Envato know, they are always wanting to improve their service.

Closing Remarks

I have left out’s official repository of themes as that likely merits its own post, however the two that I have briefly covered, are exceptional in their service and popularity. Choosing a theme should be simple and easy, getting you to the content part of owning a site as quickly as possible.

While there are definitely cases for custom work (full disclosure, I work for a company that only does custom theme work amongst other bespoke options), themes are a great way to start out any WordPress site.

Happy theme building!

Wanna yarn about something WordPress?


Well – officially starting the cutover from Sublime Text 3 to PHPStorm for a few weeks to give it a good go.

The primary reason is making small formatting mistakes and some advances in code completion. So here’s an ongoing list of resources that make the switch a little easier:

  • Open any sidebar files with a single-click:

  • The official PHPStorm resources for users switching from Text Editors :

  • Laracasts minimalism. Makes PHPStorm less overwhelming:

  • Pretty much all of these videos :

More to come…

Google Pagespeedin’

Clients often ask about increasing page speed. Normally however, those who are interested in Pagespeed already load tonnes of  analytic, tracking and optimising scripts – which naturally add HTTP requests to each page load.

On my own site though, there is no such shizzle going down – just a handful of plugins, multisite and a single DO Droplet

Let’s do this!

  • W3TC caching plugin

  • Cloudflare CDN

  • Lets handle images ( bah, Cloudflare’s got this )


Initial Google Pagespeed

Enabling Object and Memcache via W3TC

Wasn’t expecting too much improvement here on the front-end from page speed.. and got exactly that 🙂 Results were identical. I’ve since removed the W3TC plugin as I’m fairly certain Batcache and Memcache are added by default when using RTCAMP’s env setup.

Adding a CDN

Next step is a CDN – a free one,

Using WP_TRIM_WORDS on the_title in WordPress

Straight from the WP Codex there is a command to trim the word count on text – commonly used for controlling the_excerpt length to customise ‘read more’ and ‘introduction’ type on a page. $trimmed = wp_trim_words( $text, $num_words = 55, $more = null );

The above example will trim a $text variable to 55 words and have nothing trailing.

Tip for new comers: Using wp_trim_words() on the_title returns an array and not a string, so it doesn’t work with.

Instead you are likely looking for:

echo wp_trim_words( get_the_title(), 55, null );

Build a custom WP Query loop for getting WooCommerce ‘out of stock’ products

Creating a template to show only sold / out of stock items is sometimes neccesary when clients sell one-off items. I took the approach of creating a custom page template which allowed me to turn off “Show out of stock items” in all other WooCommerce pages. This allows visibility of these items on the specified page only.

I made a quick page template which would only get these products by using WordPress Meta Query properties in the loop and you can combine the meta key/values with the information found in a comment by Tareq on Meta Keys for attributes.

Here is the loop I created for this run:

$args = array( 'post_type' => 'product', 'posts_per_page' => 30, 'orderby' => 'date', 'order' => 'DESC', 'meta_query' => array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '='
$loop = new WP_Query( $args );

If you want to get items which are in stock only, you can change the value to “instock”.