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…

Handing Legacy Static Sites with Kinsta

On occasion I need to host a PHP static website. This is typically while the customer is working on a new WordPress site and simply needs to keep their legacy site live until the new one replaces it. A good option for handling these sites would be to host with a cheap MediaTemple GRID…

Reusing Cookies for Automation

Previously I’ve wrote about using a Ruby script to automate fetching data from WP Engine’s portal. Recently that script broke due to the way WP Engine’s login process works. While it might be possible to fix, let’s look at bypassing the login process completely. This involves using a real browser to login first then…

Local Lightning for WordPress Development

When it comes to local WordPress development, I’ve been split between two different tools: Laravel Valet and Local by Flywheel. Valet is really fast, however Local just works. Well, meet Local Lightning. It’s a completely remade version of Local by Flywheel which runs super fast and just works. Goodbye virtualization, hello native software Local…

Exposing WSL to Windows for Dev Backups

I recently switched my primary computer from a Macbook Pro to a Surface Laptop. My WordPress development environment is now primarily contained within WSL which is the Linux portion of Windows. WSL’s filesystem isn’t exposed to Windows which means my development environment is not automatically picked up by Backblaze, my personal backup solution. Here…

OS Platform Whichever

This week I did the unthinkable. After 10 years using iMacs and Macbook Pro’s for WordPress development, I purchased Microsoft’s newest Surface Laptop 3. Part of the move was to downsize from a 15″ laptop to a smaller 13″. However that’s not really what this purchase was about. It’s a big deal to switch…

Fetching from SFTP with Phpseclib

I recently had a customer who needed to fetch and import files from a remote SFTP server on a scheduled basis. The import process was handled nicely by WP All Import, so no need to do any custom code there. The only part missing the was actual SFTP fetching. Here is how I accomplish…

Full Page Website Screenshots

I previously wrote about taking website screenshots with gowitness. That works great for basic website screenshots. However my most recent project required full page screenshots which, unfortunately, gowitness does not yet support. It’s also unlikely to be added anytime soon. Under the hood, gowitness simply uses headless Chrome, which itself doesn’t support full page…

Migrating a Large WordPress Site

Migrating a WordPress site is generally a straightforward process. Make a backup of the current site, upload files, and import database onto the new web host. Moving a large website requires extra handling. Have you ever attempted to move a site with 100GB of storage? Tell me, how did that go? Of course migrations…