The blog
Notes on WordPress development, the plugin business, performance, and the occasional rabbit hole.
Printing a Pyramid Theory: A Buildable Giza Construction Model
A story about turning a speculative top-down pyramid construction idea into a printable STL kit, a browser animation, and a physical way to argue with the geometry.
Connect multiple WordPress sites to Claude with one MCP server
I run more than one WordPress site: Popup Maker, Content Control, two storefronts, and this blog. Working with all of them through Claude Code and MCPs, you quickly drown in tools. I've been connecting each one with the Abilities API and the MCP Adapter plugin. Plugins register "abilities", which the adapter exposes as MCP tools,…
Enable wp_body_open for Bricks Builder
Bricks builder by default doesn't support wp_body_open hook. This breaks quite a few plugins such as tag managers and analytics etc. Quick solution is to hook in to the bricks_body action, and make a simple call to wp_body_open() add_action( 'bricks_body', function () { wp_body_open(); }, 11 );
Fully Remove Snap from Ubuntu 22.04
List & Remove all snap packages snap list Remove everything you find in the list, starting with non-canonical packages. The following should work on a fresh install of Ubuntu 22.04. sudo snap remove –purge firefox sudo snap remove –purge gnome-3-38-2004 sudo snap remove –purge gnome-42-2204 sudo snap remove –purge gtk-common-themes sudo snap remove –purge snapd-desktop-integration…
Understanding the Key Components of a Data Pipeline
A data pipeline is a series of processes that move data from one place to another. Understanding the key components and terminology of a data pipeline is important for anyone who wants to build and manage one effectively. This article explores the main components of a data pipeline and the key terms you need to know.
Getting module aliases working with @wordpress/scripts, Webpack, Typescript & ESLint
When working on a larger plugin, theme or other project using the @wordpress/scripts library (or likely any Webpack based toolkit), you may find you want to stop using relative paths and start treating your code like proper packages. This is handled by resolvers typically, but in this scenario, to get all of the tooling speaking…
Working with WordPress.org SVN Cheat Sheet
After years of building and releasing plugins on the WordPress.org repository you learn a few things about SVN usage. Since most of us use Git via Github or similar to manage the actual code and day to day changes, we must use SVN from time to time to get a release out to the public.…
Sync Steam Game Library to NAS using PowerShell
Steam or similar platforms make installing many games quick and easy, but maintaining a large library of games over time can lead to a lack of disk space as most gamers know. With titles like Microsoft Flight Simulator (140GB+) & Call of Duty (80GB+), this becomes even more of an issue sooner. If your lucky…
Machine Learning with WSL2, Cuda GPU Acceleration & Docker
Before October 2020 you either struggled through setting up tools on Windows natively or dual-booted to linux for doing machine learning tasks using the GPU's. In a recent Windows Insider update, along with new drivers from Nvidia, support for running GPU based tasks with Tensorflow pretty simple. You can follow the documentation , or watch…
React Flow Example Resources
I didn't find much listed outside of the documented examples so during my hunt for things I noted all the cool examples I found in the wild below. You can find recent examples here . Node Shapes https://codesandbox.io/s/react-flow-node-shapes-k47gz This project shows how you can create different shaped nodes such as circles, squares & triangles. Node…
Setup Minikube on WSL2 for Windows 10
Working as of 04/23/2021 After following a few guides (linked below) I wasn't able to get Minikube running under WSL2. So this guide serves as a quick TL:DR that worked for me and was repeatable. I will say that I have given my user password-less sudo access, which you can read about in my guide…
Migrating Ecommerce Sites without Data Loss
This is a short checklist for quickly migrating a live ecommerce site (specifically WordPress) without losing or duplicating data in the process. Set up new server. Install clean copy of WordPress Set up test domain. (Optional) Set up SSL on the new server. Install WP Migrate DB Pro. Clone old site to new server: Migration…
Importing & Exporting WSL Linux Distros
I regularly find myself working in WSL terminals, and often for completely different needs. This led me to find the following ways to clone and restore clean images very quickly anytime the need arises. How to export a WSL distro image How to import WSL distro image How to remove an existing WSL distro Reset…
Practical Guide to GDPR compliance for WordPress plugin & theme developers.
Last updated: 05/14/2018 4:00 am EST. You are likely here because you have a WordPress plugin that manages user data in some way and your users are SCREAMING about GDPR Compliance (as they should be). This is currently the only guide to GDPR compliance for WordPress plugins until the WP Codex is updated. This will help…
Prevent users from deleting a page or post in WordPress
During my time developing plugins, theme and sites using WordPress I have often come across the need to prevent certain pages from being deleted. I have tried many solutions that did not do the trick or didn't provide a full solution to the problem. Some left the delete links but would create errors when they…
jQuery UI Autocomplete: Tabbing before results are available.
While working on a plugin of mine using jQuery UI Autocomplete i ran into an issue where sometimes users enter the value and tab out of the field before jQuery UI can make a match. This is an issue when you are setting the value of a hidden field. This allows you to fill the…
Fetching Active Install Count from the Plugins API
Today the wordpress.org plugins api got a small update. With the addition of the new Active Install metric a few weeks ago, now you can get the install count from the API for use in your own projects. For example: Popup Maker currently has [plugin_install_count plugin="popup-maker"] + Active Installs Here is a simple function that…
Plugins & Themes shouldn't combine their external assets.
The Problem I am going to outline why plugins and themes should never combine or bundle their external JS and CSS libraries. Not only is this against best practice but it can have several detrimental effects down the line. First as a plugin or theme developer for WP our jobs is not to conserve bandwidth.…