Custom Post Types in Code, Not in a Plugin UI
Why a custom post type vanishes on a theme switch, which register_post_type arguments actually decide behavior, and the rewrite flush that has to happen…
Why a custom post type vanishes on a theme switch, which register_post_type arguments actually decide behavior, and the rewrite flush that has to happen…
Safely delete thousands of trashed WordPress posts with WP-CLI using the correct PHP version, site user, Multisite targeting, batching, backups, and verification.
You need one more field on /wp/v2/posts. register_rest_field does it in a dozen lines, keeps pagination and permissions, and does not create a second…
permission_callback is required, and __return_true is a decision not a placeholder. Namespaces, argument validation, and what a public endpoint really means.
prepare is not a formatting helper. What it does, what it cannot do, why a table name can never be a placeholder, and how…
WordPress nonces protect against CSRF, not authentication or authorization. See how capability checks, sanitization, Ajax, and REST security fit together.
Validate input, sanitize before storage, and escape at output. Understand where each step belongs in WordPress and PHP and why the order matters for…
One typo in functions.php takes down the front end and the admin together. How to get back in, why it happens, and the change…
Build your first real WordPress plugin with proper headers, structure, naming, activation hooks, and site-specific code that survives theme changes.
There are hundreds of hooks and you need one. Choose by what must already exist when your code runs, not by what the last…
Priority decides order inside one hook, not across hooks. Why 999 is not a fix, what happens on a tie, and how to find…
A filter is asked for a value and an action is not. Why returning something from an action does nothing, why forgetting to return…
Learn how to convert a live WordPress single site into a directory-based Multisite using WP-CLI, with backups, rewrite rules, database checks, and testing.
The request lifecycle from the front controller to wp_footer, which hook is available at each stage, and why the right code on the wrong…