Skip to main content
rule

wordpress-claude-stack — Cursor rule for WordPress development

This Cursor rule guides WordPress theme, plugin, and block work. It suits projects that use PHP alongside WooCommerce or ACF.

Install into Cursor · Manually: put the files in place All methods and platforms ↓
.cursor/rules/wordpress-claude-stack.mdc
Open on GitHub

What wordpress-claude-stack does

The rule covers WordPress themes and plugins, Gutenberg, WooCommerce, ACF, and REST APIs. It tells the agent to use WordPress APIs, type PHP parameters and return values, and keep rendering separate from business logic in theme templates.

Its security guidance calls for nonce verification, capability checks, sanitized input, escaped output, and prepared SQL queries. Gutenberg instructions use block.json and @wordpress/scripts; WooCommerce order code should work with HPOS rather than access order postmeta directly. The rule targets **/*, while alwaysApply is set to false, so it is not configured to apply to every request automatically.

For Cursor, place the rule at .cursor/rules/wordpress-claude-stack.mdc. It guides the agent; it does not generate a complete theme or plugin on its own.

What it helps with

  • build a theme template that keeps rendering separate from business logic
  • create a plugin with activation hooks and a REST endpoint
  • add a Gutenberg block with block.json metadata
  • check PHP database code for prepared queries and escaped output
  • update WooCommerce order handling for HPOS compatibility

Example prompts for the agent

  • Create a WordPress theme template for single-product.php and move reusable markup into get_template_part().
  • Add a plugin REST endpoint with register_rest_route() and check user capabilities.
  • Review the database code: use $wpdb->prepare() and remove any query_posts() calls.

How to install wordpress-claude-stack

Manually: put the files in place

.cursor/rules/wordpress-claude-stack.mdc

Frontmatter: description, globs, alwaysApply

Step by step, with commands for each platform: Cursor rules: .mdc files, four modes and what replaced .cursorrules

Questions about wordpress-claude-stack

How do I install wordpress-claude-stack in Cursor?

Add the rule file at .cursor/rules/wordpress-claude-stack.mdc.

What does wordpress-claude-stack do?

It gives a coding agent guidance for WordPress themes, plugins, Gutenberg blocks, WooCommerce, and ACF. Its rules cover PHP typing, security checks, and database access.

How does the rule handle SQL queries?

It directs the agent to prepare database queries with $wpdb->prepare() and avoid query_posts().

Source text

wordpress-claude-stack.mdc · CC0-1.0
---
description: "Complete AI coding setup for WordPress — themes, plugins, Gutenberg, WooCommerce, ACF, REST API with .cursorrules + CLAUDE.md + Copilot instructions + 5 generation skills."
globs: **/*
alwaysApply: false
---
You are an expert WordPress developer with deep knowledge of PHP, Gutenberg, WooCommerce, ACF, and the WordPress ecosystem.

## Core Principles
- Follow WordPress Coding Standards (WPCS) strictly
- Always use `declare(strict_types=1)` in PHP files
- Escape ALL output, sanitize ALL input, prepare ALL queries
- Use WordPress APIs — never reinvent what WordPress provides
- Prefix everything with project namespace to avoid conflicts

## PHP Rules
- Type hints on all parameters and return types
- Use `WP_Query` or `get_posts()` — never `query_posts()`
- Use `$wpdb->prepare()` for ALL database queries
- Use `wp_verify_nonce()` on ALL form submissions
- Use `current_user_can()` for ALL permission checks
- Use `esc_html()`, `esc_attr()`, `esc_url()`, `wp_kses_post()` for output
- Use `sanitize_text_field()`, `absint()`, `wp_unslash()` for input

## Theme Development
- Use `add_theme_support()` for WordPress features
- Enqueue scripts/styles with `wp_enqueue_script()` / `wp_enqueue_style()`
- Use template hierarchy: `single-{post_type}.php`, `archive-{post_type}.php`
- Use `get_template_part()` for reusable components
- Keep logic in `functions.php` / `inc/`, templates should only render

## Plugin Development
- Main plugin class pattern with singleton or DI
- Activation/deactivation hooks with `register_activation_hook()`
- `uninstall.php` for cleanup on uninstall
- Use WordPress Settings API for admin pages
- Use `register_rest_route()` for REST endpoints

## Gutenberg Blocks
- Use `block.json` for metadata
- Use `@wordpress/scripts` for build tooling
- Use `useBlockProps()` and `InnerBlocks` in React/JSX
- Register with `register_block_type()` in PHP
- Dynamic blocks: use `render_callback` or `render.php`

## WooCommerce
- Override templates via `theme/woocommerce/` directory
- Use WooCommerce hooks, never modify core
- Use `wc_get_product()`, `WC()->cart`, `WC()->session`
- Use HPOS-compatible code (no direct postmeta for orders)

## Advanced Custom Fields
- Register field groups in PHP for version control
- Use `get_field()`, `the_field()`, `have_rows()`
- Use ACF blocks for Gutenberg integration
- Always provide fallback values

## Security
- Never trust user input
- Always escape, sanitize, prepare, verify nonces, check capabilities
- Never use `extract()`, `eval()`, or short PHP tags

## Database
- `get_option()` / `update_option()` for settings
- `get_post_meta()` / `update_post_meta()` for post data
- `get_transient()` / `set_transient()` for caching
- Custom tables only when WP data structures don't fit
- Always `$wpdb->prepare()` for custom queries

## Do NOT
- Modify WordPress core files
- Use `query_posts()`
- Echo unescaped data
- Write raw SQL without prepare
- Use `extract()` or `eval()`
- Hardcode URLs — use `home_url()`, `admin_url()`
- Skip nonce verification
- Put business logic in templates
- Use short PHP tags

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Similar IDE rules

All IDE rules for Backend and APIs →

From the same set210

xray-test-case-cursorrules-prompt-file A Cursor rule that turns feature descriptions and automated tests into structured Xray test cases for Jira. Useful when QA writes manual scenarios by hand. ★ 41,024repo stars webassembly-z80-cellular-automata-cursorrules-prom A Cursor rule that walks the agent through adding a region grid to a Z80 cellular automata simulation built on WebAssembly. ★ 41,024repo stars vue A Cursor rule that tells the agent how to write Vue: Composition API, Pinia, typing and routing. Useful when the project already has .vue and .ts files. ★ 41,024repo stars vue-claude-stack This rule guides code generation for Vue 3 and Nuxt 3, covering Composition API, TypeScript, and Pinia. Use it to give an agent consistent project conventions. ★ 41,024repo stars vue-3-nuxt-3-typescript-cursorrules-prompt-file A Cursor rule that tells the agent how to write Vue 3 and Nuxt 3 code: Composition API, TypeScript interfaces, Nuxt conventions. Useful when the project already runs this stack. ★ 41,024repo stars vscode-extension-dev-typescript-cursorrules-prompt-file Guides Cursor through TypeScript-based VS Code extension work, from project layout and manifests to API use and tests. ★ 41,024repo stars vitest-unit-testing-cursorrules-prompt-file A Cursor rule that turns the agent into a Vitest and TypeScript test writer: it targets business logic and utilities, mocking dependencies with vi.mock. ★ 41,024repo stars vercel-deployment-cursorrules-prompt-file This rule guides an agent through Vercel deployment choices, from environment variables and serverless functions to caching and CI/CD. Use it when preparing a project for deployment. ★ 41,024repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor