How to Build a WordPress Duplicate Post Plugin Using Claude Code

Two prompts. A working plugin. Here’s exactly what I typed, what came back, and whether I’d do it again.

I’ve been curious about AI coding tools for a while — not in a “let’s replace developers” way, but in a practical sense. Can they actually save time on real projects? Or do you spend more time fixing the output than you would have spent writing it yourself?

So I picked a real project I needed done anyway — a WordPress plugin that adds a one-click “Duplicate” button to posts and pages — and I built the whole thing using Claude Code. No starter code, no templates. I just described what I wanted and watched what happened.

Here’s the full breakdown: the prompts I used, the code that came out, and what I actually think of the experience.

How to Build a WordPress Duplicate Post Plugin Using Claude Code

Read more

I Built a WordPress Plugin with Claude Code – Here’s What Actually Happened

Copying a post ID in WordPress means opening the editor, looking at the URL, and picking the number out of ?post=. It works. It’s also mildly annoying every single time you do it.

So I built a plugin that puts a Copy ID button directly in the Posts and Pages list. One click — ID is in your clipboard. And I built the whole thing using Claude Code, start to finish.

Here’s exactly how it went, including the prompts I used.

Read more

TCPDF Was Adding a Second Page Silently – Here’s What Caused It and How I Fixed It

A user reported that their certificate was printing two pages instead of one. No error. No warning in the logs. Just a blank second page with some content on it that was supposed to be on page one.

That’s the worst kind of bug — silent, visual, and impossible to reproduce until you understand exactly what triggered it.

TCPDF Adding an Extra Page Automatically — The Rendering Loop Bug

Read more

My Moodle Plugin Crashed on the Live Site Because I Added a Column Manually

I added a new column to my plugin’s database table. Tested locally — everything worked. Deployed to the live site — plugin crashed with a “Column not found” error in front of actual users.

The column was sitting in my local database. It was not on the live server. Of course it wasn’t. I had added it by running ALTER TABLE directly in phpMyAdmin. That only touched my local machine. The live server had no idea a new column was supposed to exist.

This is the mistake I see most Moodle developers make once. You do it, the live site breaks, you manually run the SQL on the server at odd hours, and then you learn there’s a proper way to do this.

Moodle plugin database upgrade - upgrade.php and version.php diagram

Read more