July 2023

How to remove Git tracking for third party plugins in WordPress

When I work on custom WordPress builds, it tends to be a collection of a theme, one or more custom plugins, and a series of third party plugins. For this reason, I usually opt to track the entire wp-content directory in a single Git repository. Sometimes it makes sense to track third party plugins but […]

May 2020

Delegate jQuery event handlers when working with dynamic content

If you’ve had the pleasure of loading up items dynamically (via AJAX) using jQuery, you may have come across issues where event handlers on dynamically loaded items seemingly cease to work on newly loaded items. I’ve been there and I remember how frustrating it was when I first encountered it so I’m addressing this very […]

February 2020

A quick reference for the execution order of WordPress’ core hooks

I can’t tell you how many times I’ve had to look back and establish the process in my mind when building plugins or themes. I’ve done it so many times that you’d think I’d just remember it but I don’t — I always have to go spend a few minutes reminding myself. So, here’s a […]

December 2019

My 2019 Year in Review

This post marks my first ever published year in review and something I’ll aim to do each year in order to keep myself accountable and help me to clarify my goals for the following year. 2019 has been one very busy year that has taught me a lot about business, product development, time management, and […]

November 2019

WordPress theme development with Tailwind CSS and Laravel Mix

A few months back I started exploring Tailwind CSS – a utility first CSS framework – and it has fast become my first choice for building UIs. Coming from a semantic approach using a modified BEM style of CSS, the utility-first approach took a little getting used to. I mainly struggled with how large my […]

October 2019

How to unset WooCommerce order actions

If you’ve ever gotten down to business with WooCommerce, you’ll know how flexible that beast can get. Of course, the flip side to that is how gnarly things can get in there as well but I guess that’s the double-edged sword we live with when building complicated things out of WordPress. One little handy point […]

October 2019

Use a WP CLI command to prepare your plugins for release

If you’ve built plugins you’ve undoubtedly spent a whole lot of time and energy finishing up on sweet new feature X only to then face the hurdle of having to prep the whole shebang for release. I was tired of hitting that final hurdle whilst working on the ACF Custom Database Tables plugin so I […]

October 2019

Customise the post titles in ACF’s relationship field

If you’ve ever found yourself wanting to modify the post titles in an ACF relationship field, you may have already stumbled across the acf/fields/relationship/result filter. It’s a pretty useful filter when you want to provide some more contextual information next to a post title in the relationship field results list. As with many filters built […]

October 2019

Load an ACF field’s options dynamically via PHP.

One thing I really appreciate about the Advanced Custom Fields (ACF) plugin is the flexibility it offers via WordPress’ hook system. For most use cases, we can do what we need from the admin but now and then I come up against scenarios where it is either necessary or just a whole lot easier to […]

October 2019

Use PHP’s alternative syntax for clearer WordPress templates

I’ve seen quite a few instances of people asking when and where to use PHP’s alternative syntax for control structures and if you don’t know what I’m referring to, check out the PHP documentation for an outline. There’s no hard and fast rule for when to use the alternate syntax but personally, I much prefer […]