Blog

Posting Weekly

Custom Development Without Child Theming Or Custom Plugins

Let’s say you want to use a simple WordPress theme like Blocksy, yet you want to add a bit of custom functionality. What are your options? Well the most logical thing to do would be to create a child theme with custom layouts. Another option would be to build a custom WordPress plugin. Both…

WordPress Routing Hacks for Single Page Applications

If you’ve ever attempted to bundle a Javascript single page application (SPA) inside of WordPress, you’ll likely run into the issue of routing. The problem isn’t that JS frameworks can’t route properly, the question is how do you get WordPress to send all web requests pertaining to the SPA to the SPA. Let’s say…

Debugging Slow DNS Rollouts

Ever launch a new website and run into DNS delays? Ever curious what’s happening under the hood? Let’s take a closer look and DNS updates and some tips for troubleshooting the DNS rollout process. There are great – and not so great – DNS providers. The difference between a good DNS rollout and bad…

Downloading Backups From Previous Host Provider

Given the following scenario, you’ve just launched a new WordPress site by pointing DNS to the new server and you need to grab a backup file from the old web server. What do you do? There are many potential solutions, such as: Revert DNS Modify the local HOSTS file so that you can reach…

Dynamically Load WordPress Database

The file wp-config.php defines configuration before WordPress is fully loaded, and includes things like database credentials and unique authentication keys. Did you know these configurations can dynamically be loaded? The following custom code will dynamically determine a database name based on an environment variable. Multisite like mode using WP-CLI and shell variables Giving the…

Manually Merging Posts Between WordPress Sites

My recommendation has always been to avoid workflows that involve deploying staging to/from production. That’s because merging WordPress websites is really hard if not nearly impossible to pull off. There are just too moving pieces to track. 👀 Mergebot was a brilliant attempt at solving the merging problem. Unfortunately, that project has been abandoned…

Digging into Mailgun’s API with PHP

Mailgun is a popular transactional email service which I use on many WordPress websites. They have an official WordPress plugin and documentation for developers. I spent the weekend digging into their API in order to revamp an integration between Mailgun and a WordPress plugin I wrote. Interested to see what it looks like to…

Quickly Locate Unknown Disk Usage over SSH

Ever have a website’s disk usage grow over 100GBs unexpectedly? This week I did. This is how I quickly figured out where the extra data was located with the help of rclone and Kinsta’s ssh access. Good host providers let you know when you’re over your limits. I use Kinsta to host all of…

Disable Web Requests for WP-CLI Only WordPress

Did you know you can use WordPress exclusively from WP-CLI? The use case for doing this is pretty unique. Not likely something you’ll see in the wild. Generally you want WordPress to handle web requests however for a WP-CLI only WordPress site we’ll want to disable them. Let’s look at how we can lock…

Learning Vue.js as a WordPress Developer Part 5 – Decoupled Page Template

This post is part of a series called “Learning Vue.js as a WordPress Developer” Part 1 – Getting Started Part 2 – Structured PHP, Rest API and Axios Part 3 – Markdown and WordPress Embeds Part 4 – Authenticated Rest API Part 5 – Decoupled Page Template Creating a custom page template is an…