I would imagine the journey I took into developing themes and sites with WordPress is a very similar one to a lot of people. Take a default Twenty* theme, get a feel for it, tweak it here, rip it apart there. When I first started, everything chunk of code was borrowed, copied or used as a base. I believed only ‘professional’ developers write all their code from scratch, and know all the function names and syntax without having to look them up. Wrong!

Of course there is nothing wrong with writing code from scratch, it’s a great way to learn and improve and will always be the best route in certain situation. But in the last year I have learnt that, when putting together WordPress sites you can rely on some very powerful plugins to help you out along the way.

Here are 3 plugins that have changed how I build client themes and develop WordPress sites.

Advanced Custom Fields

acf banner

Advanced Custom Fields (ACF) is a free plugin that supercharges custom meta for posts, pages and custom post types, adding an interface layer with a large number of field types, such as a WYSIWYG editor, image editor, file upload and many more.

Before I started using ACF, I was coding meta boxes and custom meta fields for my sites from scratch. This was typically done in the theme’s functions.php file as well. I had heard people talk about ACF and its benefits, but I thought rolling my own each time was a better way to go. How wrong I was. As soon as I started using ACF with an agency that used it on every site they built, I discovered just how powerful and timesaving it was. The sheer amount of field types would have taken me far too long to code, and the configuration of the fields can now take seconds.

Having custom meta fields created by a plugin (by ACF or another plugin) is a much better way to handle this extra data. The custom meta data is theme agnostic, preventing the theme lock in effect if the theme is switched.

ACF makes my life easier as a developer and gives the people managing the sites greater options and control for adding content.

Posts 2 Posts

p2p banner

Posts 2 Posts (p2p) is a free plugin that introduces the concept of relationships between posts of any type. These relationships can be defined as many-to-many and one-to-many, allowing data modelling to WordPress objects.

This plugin is extremely useful when adding further post types to a WordPress site, moving it more towards a web application. A simple example would be the ubiquitous portfolio post type. So you have a custom post type of ‘portfolio’, and you want to define a client for each portfolio item. You could create a new taxonomy of ‘client’ for the post type, and categories the portfolio items that way. But what if you want to have lots of data for the client; a description, featured image and custom meta? You can create a new post type for ‘client’, then using p2p you can define the relationship between the portfolio items and clients. For example, a portfolio item will have only one client, but a client could have many items. Therefore the relationship is client – one-to-many – portfolio.

The plugin gives you a user interface to connect items across post types once these relationships have been defined. Then you can use special query arguments in WP_Query to fetch the connected items. For example, in a single client post type template you want to show all the projects connected with that client:


// Find connected projects to the client
$connected_projects = new WP_Query( array(
  'connected_type' => 'clients_to_portfolio',
  'connected_items' => get_queried_object(),
  'nopaging' => true,
) );

Posts 2 Posts really is a powerful plugin that would be a great addition to core but for now it is a must have plugin for developers looking to enhance the data model for WordPress post types.

WP Migrate DB Pro

wp mdb pro banner

WP Migrate DB Pro is the premium version of the free WP Migrate DB plugin that makes migrating your database between WordPress installs a breeze.

Before using the plugin, deploying a local site to a live server would be a challenge when it came to the database. I would either manually edit a SQL dump file, replacing urls before importing to the live server, or I would recreate content manually on the live server. Completely painful and time consuming! The plugin takes care of this for you, allowing you to migrate your database quickly and safely with the knowledge that urls will be replaced completely, even in serialized data strings for widgets and options. It will even handle backups, custom tables and media files.

This is one of the most useful premium plugins on the market and a must have for WordPress site developers.

Do you use these plugins or any variations? Which plugins have changed your life for the better?

What to hear about our latest deals and new posts? Subscribe below 👍

Posted by Iain Poulson

Curator of WP App Store. I build things with WordPress and PHP. I also build WordPress plugins, most notably the Instagram WordPress plugin Intagrate.