Here at Sterner Stuff, we don’t like throwing away existing websites and content. We call that stuff “equity”, and no one wants to throw away equity. When possible, we’ll repurpose as much of a WordPress site as possible when implementing a new design, features, etc. So while it may seem like a brand new site,…

Read More

If your WordPress website is proxied behind Cloudflare, the IP address reported to your server isn’t the actual IP address of the original request. It’s a Cloudflare IP. Most of the time, this doesn’t matter, but if you’re using WP fail2ban, this causes issues. The Problem By default, fail2ban in combination with WP fail2ban works…

Read More

If you’re generating PDFs from HTML in the Laravel world, you’re likely using something like Snappy, wrapped conveniently in a service provider by barryvdh/laravel-snappy. Snappy depends on the wkhtmltopdf binary to function. Per the documentation, this binary is conveniently available via Composer: But that package hasn’t been updated in 4+ years, meaning the binary is…

Read More

This question has been documented about a million places around the internet with a variety of convoluted answers. How can we upgrade Laravel Homestead without losing our MySQL databases? Instead of writing your own mysqldump commands, or copying and pasting one from an internet stranger, there’s actually functionality for this built right into Homestead. If…

Read More

Google is rolling out a new set of metrics designed to evaluate the performance of websites across the internet. How your site performs, according to these metrics, will directly impact your website’s organic search engine results page (SERP) ranking – that is, how close to the top of Google you are. Site speed has always…

Read More

One of the biggest struggles facing both the maintainers of WordPress and individuals tasked with maintaining WordPress sites is updates. Running updates often gets ignored by non-technical users afraid of breaking things, and the WordPress core team is doing everything they can to mitigate the security risks involved with not updating. If you don’t install…

Read More

Often, it’s very simple to disable a filter or action in WordPress. Core’s adherence, merit notwithstanding, to working in the global namespace meant many plugins and themes followed suit. So unhooking a function was as simple as: But as PHP has matured, plugin and theme authors are more often using modern structures and practices, like…

Read More

There’s currently a bug in WP Bakery (version 6.0.5) that enables or disables the block editor, Gutenberg, for an entire post type based on a single post on the various “All [Post Type]” admin screens. You’ve probably noticed this if you’ve installed the Classic Editor plugin and have switching editors enabled. You’d expect to be…

Read More
Slider Revolution demo screen

If you’re a WordPress developer moving sites between environments, you might find yourself using the WordPress command line tool WP-CLI to run database search-replaces fairly frequently. This lets you quickly swap out one URL for another in the database (so if I want to replace https://sternerstuff.dev with https://sternerstuffdesign.test, for local testing). I inherit a variety…

Read More

Situation: You’ve got your local codebase for a site in place, but the database got wiped, intentionally or otherwise. Maybe you destroyed your Vagrant box. To quickly pull the production database, I’ll often use a tool like WP Migrate DB Pro. Of course, using that tool (or any other plugin-based database migration tool) depends on…

Read More