AI Drafts, Human Approval: Build a “Needs Review” Workflow for AI-Written WordPress Posts
Register an ai_review post status, route AI output into it, then add a capability-gated diff metabox that logs the approving user before…
Read tutorial
Practical WordPress tutorials for themes, plugins, and real builds.
Latest tutorial
Advanced WordPress Topic
Audit AI Plugin REST Routes: A WP-CLI Command That Flags Missing permission_callback
Build a WP-CLI command that walks every registered REST route, flags __return_true and missing permission_callback values, and fails CI when AI endpoints are exposed.
Read tutorial
More tutorials
AI Drafts, Human Approval: Build a “Needs Review” Workflow for AI-Written WordPress Posts
Register an ai_review post status, route AI output into it, then add a capability-gated diff metabox that logs the approving user before…
Read tutorial
Bulk-Generate WooCommerce Product Descriptions with the OpenAI Batch API and a WP-CLI Review Queue
Build a WP-CLI command that queues empty WooCommerce products into an OpenAI Batch job, stages the copy as pending meta, and lets…
Read tutorial
Expose WordPress to an AI Agent Safely: Read-Only Abilities with the Abilities API and Permission Callbacks
Register read-only WordPress abilities with wp_register_ability, lock them down with permission callbacks and strict schemas, then hand them to an LLM as…
Read tutorial
Build a Provider-Agnostic AI Client for WordPress: Anthropic, OpenAI and Gemini Behind One wp_remote_post Wrapper
One PHP class, three AI providers. Normalise OpenAI, Anthropic and Gemini chat calls through wp_remote_post, keep keys in wp-config, and swap models…
Read tutorial
Stop Leaking OpenAI Keys in WordPress: Build a REST Proxy with Capability Checks, Rate Limits and Logging
Keep your OpenAI key in wp-config, then expose a locked-down WordPress REST proxy with capability checks, nonce validation, transient rate limits and…
Read tutorial
Prompt-Injection Hygiene for WordPress AI Plugins: Sanitising User Input, Locking Tool Boundaries and Validating Model Output
Build a reusable guard class for WordPress plugins that call an LLM: sanitise user text, delimit untrusted data, whitelist tools, validate JSON…
Read tutorial