wordpress-claude-stack — правило для Cursor: задачи и установка
Правило задаёт рекомендации для разработки тем, плагинов и блоков WordPress в Cursor. Оно пригодится, если агент пишет PHP, работает с WooCommerce или использует ACF.
.cursor/rules/wordpress-claude-stack.mdcЧто делает wordpress-claude-stack
Правило охватывает темы и плагины WordPress, Gutenberg, WooCommerce, ACF и REST API. Оно направляет агента к API WordPress, требует типизации PHP и задаёт подходы к работе с шаблонами, блоками и запросами к базе данных.
Отдельные инструкции касаются безопасности: проверять nonce и права пользователя, очищать входные данные, экранировать вывод и подготавливать SQL-запросы. Для Gutenberg описаны block.json и @wordpress/scripts, а для заказов WooCommerce требуется совместимость с HPOS. Правило применяется к файлам проекта по шаблону **/*, но alwaysApply отключён, поэтому автоматическое применение ко всем запросам не задано.
В Cursor файл правила размещают по пути .cursor/rules/wordpress-claude-stack.mdc. Это правило для рекомендаций агенту, а не готовый генератор темы или плагина.
Какие задачи решает
- создать шаблон темы с разделением логики и отображения
- написать плагин с хуками активации и REST-маршрутом
- добавить блок Gutenberg с
block.json - проверить PHP-код на подготовку SQL и экранирование вывода
- адаптировать работу с заказами WooCommerce под HPOS
Примеры запросов агенту
- Создай шаблон
single-product.phpдля темы WordPress и вынеси повторяющуюся разметку вget_template_part(). - Добавь REST-маршрут для плагина через
register_rest_route()и проверь права доступа. - Проверь запросы к базе данных: используй
$wpdb->prepare()и не применяйquery_posts().
Как установить wordpress-claude-stack
Вручную: положить файлы
.cursor/rules/wordpress-claude-stack.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/wordpress-claude-stack.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/wordpress-claude-stack.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/wordpress-claude-stack.mdВручную: положить файлы
.clinerules/wordpress-claude-stack.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о wordpress-claude-stack
Как установить wordpress-claude-stack в Cursor?
Добавьте файл правила по пути .cursor/rules/wordpress-claude-stack.mdc.
Что делает wordpress-claude-stack?
Задаёт рекомендации агенту для разработки WordPress-тем, плагинов, Gutenberg-блоков и интеграций с WooCommerce и ACF. Включает правила типизации PHP, безопасности и работы с базой данных.
Как правило предлагает работать с SQL-запросами?
Для запросов к базе данных оно требует использовать $wpdb->prepare(). Также рекомендует не использовать query_posts().
Исходный текст
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