wp-plugin-development

Полный рабочий процесс разработки плагинов WordPress от архитектуры до безопасности и упаковки релиза. Охватывает структуру плагина, хуки/действия/фильтры, жизненный цикл активации/деактивации/удаления и Settings API для административного интерфейса и управления опциями. Включает обязательный базовый уровень безопасности: проверка/очистка ввода, nonces, проверки прав доступа и параметризованные SQL-запросы через $wpdb->prepare(). Поддерживает шаблоны хранения данных, настройку задач cron с идемпотентностью и миграции схем с...

npx skills add https://github.com/wordpress/agent-skills --skill wp-plugin-development

WP Plugin Development

When to use

Use this skill for plugin work such as:

  • creating or refactoring plugin structure (bootstrap, includes, namespaces/classes)
  • adding hooks/actions/filters
  • activation/deactivation/uninstall behavior and migrations
  • adding settings pages / options / admin UI (Settings API)
  • security fixes (nonces, capabilities, sanitization/escaping, SQL safety)
  • packaging a release (build artifacts, readme, assets)

Inputs required

  • Repo root + target plugin(s) (path to plugin main file if known).
  • Where this plugin runs: single site vs multisite; WP.com conventions if applicable.
  • Target WordPress + PHP versions (affects available APIs and placeholder support in $wpdb->prepare()).

Procedure

0) Triage and locate plugin entrypoints

  1. Run triage:
    • node skills/wp-project-triage/scripts/detect_wp_project.mjs
  2. Detect plugin headers (deterministic scan):
    • node skills/wp-plugin-development/scripts/detect_plugins.mjs

If this is a full site repo, pick the specific plugin under wp-content/plugins/ or mu-plugins/ before changing code.

1) Follow a predictable architecture

Guidelines:

  • Keep a single bootstrap (main plugin file with header).
  • Avoid heavy side effects at file load time; load on hooks.
  • Prefer a dedicated loader/class to register hooks.
  • Keep admin-only code behind is_admin() (or admin hooks) to reduce frontend overhead.

See:

  • references/structure.md

2) Hooks and lifecycle (activation/deactivation/uninstall)

Activation hooks are fragile; follow guardrails:

  • register activation/deactivation hooks at top-level, not inside other hooks
  • flush rewrite rules only when needed and only after registering CPTs/rules
  • uninstall should be explicit and safe (uninstall.php or register_uninstall_hook)

See:

  • references/lifecycle.md

3) Settings and admin UI (Settings API)

Prefer Settings API for options:

  • register_setting(), add_settings_section(), add_settings_field()
  • sanitize via sanitize_callback

See:

  • references/settings-api.md

4) Security baseline (always)

Before shipping:

  • Validate/sanitize input early; escape output late.
  • Use nonces to prevent CSRF and capability checks for authorization.
  • Avoid directly trusting $_POST / $_GET; use wp_unslash() and specific keys.
  • Use $wpdb->prepare() for SQL; avoid building SQL with string concatenation.

See:

  • references/security.md

5) Data storage, cron, migrations (if needed)

  • Prefer options for small config; custom tables only if necessary.
  • For cron tasks, ensure idempotency and provide manual run paths (WP-CLI or admin).
  • For schema changes, write upgrade routines and store schema version.

See:

  • references/data-and-cron.md

Verification

  • Plugin activates with no fatals/notices.
  • Settings save and read correctly (capability + nonce enforced).
  • Uninstall removes intended data (and nothing else).
  • Run repo lint/tests (PHPUnit/PHPCS if present) and any JS build steps if the plugin ships assets.

Failure modes / debugging

  • Activation hook not firing:
    • hook registered incorrectly (not in main file scope), wrong main file path, or plugin is network-activated
  • Settings not saving:
    • settings not registered, wrong option group, missing capability, nonce failure
  • Security regressions:
    • nonce present but missing capability checks; or sanitized input not escaped on output

See:

  • references/debugging.md

Escalation

For canonical detail, consult the Plugin Handbook and security guidelines before inventing patterns.

Больше skills от wordpress

blueprint
wordpress
Используйте при создании, редактировании или проверке JSON-файлов blueprint для WordPress Playground. Срабатывает при упоминании blueprints, конфигурации Playground или запросов…
official
wordpress-router
wordpress
Классифицирует кодовые базы WordPress и направляет в соответствующий рабочий процесс для плагинов, тем, блоков и проверок ядра. Выполняет автоматическую сортировку проектов для определения типа репозитория (плагин, тема, блочная тема, блоки Gutenberg, ядро WP) и доступных инструментов. Выводит результаты классификации и маршрутизацию по дереву решений к специализированным навыкам в зависимости от намерений пользователя и типа проекта. Требует доступа к корню репозитория и операций с файловой системой bash/Node; некоторые рабочие процессы требуют WP-CLI. Ориентирован на WordPress 6.9+ с PHP 7.2.24+;...
official
wp-abilities-api
wordpress
Регистрация WordPress Abilities API, REST-экспонирование и клиентское потребление для WordPress 6.9+. Регистрируйте способности и категории в PHP с помощью wp_register_ability() и wp_register_ability_category() со стабильными ID, метками и метаданными. Экспонируйте способности для клиентов через REST-эндпоинты /wp-json/wp-abilities/v1/, устанавливая meta.show_in_rest: true. Потребляйте способности в JavaScript с помощью пакета @wordpress/abilities для клиентского доступа и проверки разрешений. Требуется WordPress 6.9+...
official
wp-abilities-audit
wordpress
Провести аудит REST-поверхности плагина WordPress и подготовить стандартизированный аудиторский документ с предложениями по регистрации в Abilities API. Создаёт markdown-документ с YAML…
official
wp-abilities-verify
wordpress
Проверка регистраций Abilities API плагина WordPress: перечисление способностей, проверка соответствия поведения обратных вызовов заявленным в каждой аннотации (состязательная…
official
wp-block-development
wordpress
Разработка блоков WordPress для Gutenberg: метаданные, регистрация, рендеринг и сборочные процессы. Охватывает создание блоков, настройку block.json, статический и динамический рендеринг, а также серверную PHP-регистрацию с register_block_type_from_metadata(). Использует apiVersion: 3 для совместимости с WordPress 6.9+, включая поддержку редактора iframe и изоляцию стилей. Обрабатывает сериализацию атрибутов, устаревшие версии/миграции для предотвращения ошибок "Invalid block" и композицию внутренних блоков. Включает...
official
wp-block-themes
wordpress
Разработка блочных тем WordPress: theme.json, шаблоны, паттерны и устранение неполадок в редакторе сайта. Охватывает редактирование theme.json (пресеты, настройки, стили для отдельных блоков), шаблоны и части шаблонов, паттерны и вариации стилей в WordPress 6.9+. Включает скрипты триажа для определения корней тем и структуры блочных тем, а также пошаговые процедуры создания новых тем или преобразования классических тем. Предоставляет рабочие процессы отладки проблем иерархии стилей, переопределений пользовательских настроек и редактора сайта...
official
wp-interactivity-api
wordpress
Используйте при создании или отладке функций WordPress Interactivity API (директивы data-wp-*, хранилище/состояние/действия @wordpress/interactivity, блок viewScriptModule…
official