Can AI Build Your App? A Developer's Honest Answer
AI app builders can get you surprisingly far. But there's a gap between a working prototype and a production-ready application. Here's what you need to know before you start.
AI app builders can get you surprisingly far. But there's a gap between a working prototype and a production-ready application. Here's what you need to know before you start.
WordPress is a powerful platform, but it's not the right fit for every business. Here's how to figure out which approach actually suits your needs.
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 rea...
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 ...
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 y...
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 g...
A few months back I started exploring Tailwind CSShttps://tailwindcss.com/ – a utility first CSS framework – and it has fast become my first choice for b...
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 c...
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...
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/relationshi...
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...
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 referri...
Templating in WordPress is pretty easy, right? There are loads of template functions and most things are pretty well document but every now and then it's jus...
Ever used the Limit Login Attempts plugin to help safeguard against attacks? I usually find this installed on managed hosts like Pressidium and Flywheel and ...
When you start digging into WordPress partials, things really open up on the theme side. Being able to reuse templates is a nice feature and can help keep yo...
A neat feature of included files is the fact that they can return data. You can simply assign the output of an include or require statement to a variable and...
Debugging can be a lot simpler with a nice set of tools. Ideally, breakpoints and stepping through code is the way to go but sometimes it is nice and easy ju...
One neat trick I use a fair bit is hitting URLs on the command line using curl. The most common use case I have for it is checking redirects but if you start...
Updating WordPress can really start to grind on me. Everyone is constantly releasing updates for their plugins and the core team are pushing to release more ...
If you get down to business with performance optimisation, you could find yourself looking at ways to defer your scripts or even load them asynchronously. A...
This is one of those techniques that you don't really think you need until you find yourself in a situation where you do. This definitely isn't a hammer and ...
Building on yesterday's tip, I'm putting this up to show how easy it is to register a custom colour palette for WordPress' block editor; AKA Gutenberg. It's...
Ever found yourself wishing you could define an exact colour palette for ACF's colour picker field? Good news! You totally can. Using the JavaScript API bu...
Having worked in collaborative and team contexts, I've had my fair share of situations where I'm working in amongst someone else's code. There are plenty of ...
The ability to control exactly what buttons are available in a WYSIWYG field is a really neat point of customisation available in Advanced Custom Fields. Th...
If you have access to WP CLI I can't recommend it enough. Since I picked it up it has saved me so much time during development. It helps me scaffold code, an...
If you use Advanced Custom Fields a lot you are probably using ACF's very awesome Local JSON feature. By default, ACF saves and loads all JSON files from th...
If you are writing a lot of jQuery you'll likely have files with loads of JavaScript functions and variables that may be completely independent and shouldn't...
If you've ever found yourself in a situation where you need to render something from some other post whilst in the context of another, you may have ended up ...
Having written plugins that extend the very popular WordPress plugin Advanced Custom Fields ACF, I've come up against the need to work out a field's key base...
I've recently been developing sites using a utility-based approach with my CSS and I'm kinda loving the flexibility that comes with this paradigm. One parti...
Versioning your assets in WordPress is relatively straight-forward as the wp_register_script and wp_register_style functions both offer support for specifyin...
I recently found myself in a situation where I needed to test the non-logged in user experience while Elementor's maintenance mode was enabled. The quick an...
In recent work where I've been using tailwindcss to build my UI, I've come up against the challenge of dealing with WordPress' default menu markup. One possi...
So this has kind of caught me a few times and thought I might stick it here as a future note to self. When attempting to push to a Gist using SSH authenticat...
A collection of shell commands I use to get things done in a snap or close to find . -mindepth 2 -maxdepth 2 -type f -execdir mv -i -v {} .. ; This command b...
Learn how you can save time and disk space by proxying images to a remote host while working on Laravel Valet.
I recently published my own Laravel Valet boilerplate for WordPress dev. In this post I harp on about its features and why I love developing on Valet.
Just a nice visual reference of CSS box shadows I like to use from time to time.
In a recent project using the Laravel framework, I've been getting familiar with WebSockets and came up against a situation where I needed to broadcast an e...
The age old practice of using ACF to manage our post type data is not lost to Gutenberg. I take a look at what I found while tinkering with the new editor.
When crafting custom-built interfaces, I find it incredibly convenient to be able to scale the entire thing down in size for devices below a certain width. O...
Jobs aren't something I change very often. This isn't due to some fierce loyalty that I carry from role to role, nor is it because I'm easily contented with ...
If, like me, you find yourself working with overloaded meta tables, you might consider eradicating certain values from the database. In this post, we look at exactly how you might do that when using Advanced Custom Fields.
I don't know about you, but I'm sick of manually setting up this key when I update a local environment or kick off a new install. So, after finally digging i...
In this post I take a look at BEM: why I use it, how I use it, and the benefits it brings to my workflow. There's even a few snippets you can nick!
It's been a good 10+ years since I left my last official 'in-house' place of employment. You know, the type where you rock up at a certain time, carry out a ...
If you are reading this, you are likely in a position where you are unable to edit the WordPress Address and Site Address fields in your WordPress admin; !...
If you've ever built a custom WordPress theme, you'll have no doubt worked with The Loophttps://codex.wordpress.org/The_Loop. If you aren't quite sure what I...
Back when I first started working with the web, I barely touched JavaScript. At most, I was copy-pasting jQuery snippets to handle simple tasks like email ob...
By using the --images option when creating a site with VVhttps://github.com/bradp/vv, you can set your local site to load images by proxy; that is, to load ...
How to get a raw data array using the WordPress Popular Posts plugin and a custom class.
Working with media in WordPress is, for the most part, a fairly simple task; especially with the more recent improvements to the media manager. Deleting med...
If you ever find yourself in a position where you need to force a 404, this can be done by hooking into the wp action hook and setting the 404 status on the...
Flywheel is a premium WordPress hosting company that make owning a Wordpress site so much easier. Take a look at how Flywheel can make your life smoother.
From website design & SEO through to custom WordPress plugin development. I transform ideas into dynamic, engaging, and high-performing solutions.