wp-plugin-development

作者: wordpress

We need to translate the given text from English to Traditional Chinese. The text describes a WordPress plugin development workflow. We must preserve the name "wp-plugin-development" but it's not in the text, so ignore. Preserve technical terms like WordPress, hooks/actions/filters, Settings API, $wpdb->prepare(), etc. No extra commentary. Just translate the text. The text: "Complete WordPress plugin development workflow from architecture through security and release packaging. Covers plugin structure, hooks/actions/filters, activation/deactivation/uninstall lifecycle, and Settings API for admin UI and options management Includes mandatory security baseline: input validation/sanitization, nonces, capability checks, and parameterized SQL queries via $wpdb->prepare() Supports data storage patterns, cron task setup with idempotency, and schema migrations with..." Note: The text ends with "with..." so it's incomplete. We'll translate as is. Translation: 完整的WordPress外掛開發工作流程,從架構到安全性與發佈打包。涵蓋外掛結構、鉤子

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.

來自 wordpress 的更多技能

blueprint
wordpress
在建立、編輯或檢視 WordPress Playground 的 blueprint JSON 檔案時使用。當提及 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+。使用 wp_register_ability() 和 wp_register_ability_category() 在 PHP 中註冊能力與類別,需包含穩定的 ID、標籤及中繼資料。透過設定 meta.show_in_rest: true,將能力經由 /wp-json/wp-abilities/v1/ REST 端點公開給客戶端。使用 @wordpress/abilities 套件在 JavaScript 中存取能力並進行權限檢查。需要 WordPress 6.9+...
official
wp-abilities-audit
wordpress
Audit a WordPress plugin's REST surface and produce a standardized audit document proposing Abilities API registrations. Produces a markdown doc with a YAML…
official
wp-abilities-verify
wordpress
Verify a WordPress plugin's Abilities API registrations: enumerate abilities, check that callback behavior matches each annotation's claim (the adversarial…
official
wp-block-development
wordpress
WordPress 區塊開發(Gutenberg):元資料、註冊、渲染與建置流程。涵蓋區塊建立、block.json 設定、靜態與動態渲染,以及使用 register_block_type_from_metadata() 進行伺服器端 PHP 註冊。強制使用 apiVersion: 3 以相容 WordPress 6.9+,包含 iframe 編輯器支援與樣式隔離。處理屬性序列化、棄用/遷移以避免「無效區塊」錯誤,以及內部區塊組合。包含…
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 store/state/actions、區塊 viewScriptModule…)
official