Meowtin
← Back to Portfolio

WordPress

A Handmade Story WordPress Rescue

A Handmade Story3 page builders → 1 · 31 → 22 plugins
WordPressPHPChild ThemeWP REST APICSSAccessibility (WCAG)Performance
Visit Site →
A rescue job on a self-hosted lifestyle and craft blog, and a good illustration of what years of accumulated plugins do to a WordPress site.

What I walked into: three page builders running at once, 31 active plugins, no child theme (so every update wiped her customizations — which is why the site kept breaking), a blank site title that made every page and social share render as a stray hyphen, and every post filed under a category literally misspelled Uncatorgized. Two competing mail plugins were producing 72 failed emails a month, and open registration had been farmed into ~530 spam accounts alongside ~3,100 blocked login attempts.

The constraint that shaped everything: WordPress admin access only — no SSH, no SFTP, no control panel, so none of the usual tooling was available. Everything had to be deliverable through the admin screen.

So I built a proper child theme (~3,700 lines of PHP, CSS, and JS) deployed as a ZIP, drove all the bulk content work through the WordPress REST API, and wrote a 909-line idempotent migration for the ~19 database changes the API can't reach — resolving categories by slug and pages by path so IDs from my local mirror could never leak into production. Safe to re-run.

Then the actual diagnosis: her complaint was “my posts don't show up in their category,” and the cause wasn't a broken link — 18 hand-built Pages were standing in for category archives that never listed anything. I replaced them with real archives and a proper 30-category hierarchy, refiled 29 posts, and rewired 30 nav items to taxonomy objects so the menu survives a domain change.

Every change was proven on a full local mirror of the live site before it went anywhere near production. The goal was never just a redesign — it was handing the site back in a state she can edit herself, so she never has to hire this out again.

Screenshots

Missing ImageA Handmade Story — screenshots
← All Projects