fswp-block-developer

Compétence dédiée au développement de blocs WordPress avec Full-Stack WP Developer. Couvre la création de blocs Gutenberg sur mesure (block.json, rendu statique et dynamique, attributs, supports, InnerBlocks, variations, dépréciations, liaisons de blocs), les motifs de blocs et l'API d'interactivité (directives data-wp, stores, état côté serveur), avec le workflow de build @wordpress/scripts.

Qu'est-ce que fswp-block-developer ?

Cette compétence est destinée aux développeurs utilisant Full-Stack WP Developer pour créer des blocs Gutenberg personnalisés, des motifs de blocs et des interactions front-end dans un environnement WordPress. Elle fournit des directives complètes pour la construction de blocs statiques et dynamiques, la configuration de block.json, l'utilisation d'InnerBlocks, la gestion des attributs et des supports, la création de variations et de dépréciations, ainsi que l'API Block Bindings. La compétence couvre également l'API d'interactivité avec les directives data-wp, les stores et l'état côté serveur, tout en s'appuyant sur le workflow de build @wordpress/scripts. Elle s'intègre avec les compétences de base (lean-coding, coding-standards, sécurité) et les références officielles (Block Editor Handbook) pour garantir des blocs robustes, accessibles et sécurisés. Utilisez cette compétence lorsque vous devez créer un bloc personnalisé, un motif ou une fonctionnalité interactive qui ne peut pas être réalisé avec les blocs de base de WordPress.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/syncwin/fswp-developer/tree/main/skills/fswp-block-developer

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

FSWP Block Developer

Fondamental (toujours appliqué) : fswp-developer/references/lean-coding.md (écrire moins, réutiliser d'abord), fswp-developer/references/coding-standards.md (normes de codage, documentation, i18n, accessibilité), et fswp-security-engineer (entrée, sortie, autorisation).

Utilisez d'abord les blocs de base ; ne créez un bloc personnalisé que lorsque les blocs et motifs de base ne peuvent pas exprimer le besoin. Références officielles : liens du Block Editor Handbook dans fswp-developer/references/official-docs.md. Vérifiez la version minimale de WordPress pour chaque API par rapport à la version minimale déclarée du projet.

Anatomie

blocks/my-block/
  block.json      name, title, category, attributes, supports, render, editorScript, viewScriptModule, style
  edit.js         interface de l'éditeur (utilise useBlockProps)
  save.js         balisage statique, ou omettre pour les blocs dynamiques
  render.php      rendu serveur pour les blocs dynamiques
  view.js         comportement frontal (module)
  style.scss / editor.scss

Enregistrement à partir des métadonnées : register_block_type( __DIR__ . '/build/my-block' ) sur init (utilisez une fonction nommée pour le callback init). Définissez "apiVersion": 3 (actuel depuis WordPress 6.3) et ajoutez "$schema": "https://schemas.wp.org/trunk/block.json". Référence champ par champ, vérifiée par rapport au Block Editor Handbook : references/block-json.md.

Décisions

QuestionChoisissez
La sortie ne dépend que des attributs enregistrésBloc statique (save.js)
La sortie dépend de données en direct, doit changer sans réenregistrement, ou contient de la logiqueBloc dynamique (render.php) ; save renvoie null ou uniquement InnerBlocks
Contenu imbriquéInnerBlocks avec allowedBlocks et template
Lier un attribut à des données (méta d'article, source personnalisée)API Block Bindings (register_block_bindings_source) si la version minimale de WordPress le permet
Préréglages alternatifs d'un bloc existantVariations ou styles de bloc, pas un nouveau bloc
Mise en page réutilisableUn motif, pas un bloc

Règles

  • Attributs : donnez à chaque attribut un type et une default ; sourcez-les à partir du balisage ou des commentaires de manière cohérente ; validez dans render.php.
  • Utilisez supports (couleur, espacement, typographie, alignement, ancre) au lieu d'écrire des contrôles.
  • Le balisage de l'éditeur doit utiliser useBlockProps() ; le PHP dynamique utilise get_block_wrapper_attributes().
  • render.php (block.json render, WordPress 6.1+) reçoit $attributes, $content et $block (un WP_Block). Il se charge une fois par instance de bloc sur la page, donc ne déclarez jamais de fonctions ou de classes à l'intérieur ; appelez le code partagé depuis un autre fichier.
  • Scripts vs modules : viewScript est pour les scripts classiques (et tout ce qui dépend des scripts WordPress) ; viewScriptModule (6.5+) est pour les modules de script comme l'API d'interactivité. Ils ne sont pas interchangeables, donc ne mélangez pas les dépendances entre les deux.
  • Échappez tout dans render.php (fswp-security-engineer) ; les attributs sont des entrées utilisateur.
  • Modifier le balisage enregistré d'un bloc statique déjà livré casse le contenu existant. Ajoutez une entrée deprecated avec l'ancien save, les attributs et une fonction migrate, puis modifiez le bloc.
  • Traduisez les chaînes (__() avec le domaine de texte) en JS et PHP ; wp_set_script_translations ou block.json textdomain.
  • Chargez les scripts frontaux uniquement là où le bloc s'affiche (block.json viewScriptModule/script le font).

Motifs

Plus de détails sur les motifs, les variations, les accroches de blocs et les liaisons : references/patterns-variations.md. Approfondissement de l'API d'interactivité (rendu serveur, actions asynchrones, data-wp-each, watchers, performances) : references/interactivity.md.

Enregistrez en PHP avec register_block_pattern() (et register_block_pattern_category()), ou sous forme de fichiers dans le dossier patterns/ d'un thème. Les motifs utilisent des préréglages et du texte traduit ; pas d'images distantes ; donnez-leur un titre clair, des catégories et des mots-clés.

API d'interactivité

Balisage rendu côté serveur avec un petit comportement réactif, sans framework nécessaire.

  • Activez avec "supports": { "interactivity": true } et "viewScriptModule": "file:./view.js".
  • Directives de balisage : data-wp-interactive="namespace", data-wp-context='{"open":false}', data-wp-on--click="actions.toggle", data-wp-bind--hidden="!context.open", data-wp-class--is-open="context.open", data-wp-text="state.label".
  • Store dans view.js : import { store, getContext } from '@wordpress/interactivity'; store( 'namespace', { state: {...}, actions: { toggle() { const c = getContext(); c.open = ! c.open; } } } );
  • Initialisez l'état serveur avec wp_interactivity_state( 'namespace', array(...) ) pour que le premier affichage soit correct et sans flash. Gardez l'état sérialisable.
  • Utilisez des espaces de noms pour tout afin d'éviter les collisions ; ne mettez jamais de secrets dans l'état ou le contexte (les deux sont imprimés dans la page).
  • Pour l'accessibilité, liez aria-expanded et la gestion du focus à l'état, et testez l'utilisation au clavier.

Build et tests

npx @wordpress/create-block pour un point de départ ; @wordpress/scripts pour build, start, lint-js, lint-style, test-unit-js. Livrez les fichiers générés avec src/, package.json et le fichier de verrouillage (règle de répertoire pour le code compilé). Testez dans l'éditeur (insérer, modifier, enregistrer, recharger, passer en vue code) et sur le front-end. Passez à fswp-qa-engineer.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

fswp-api-developer

Domain skill for WordPress REST API and Abilities API work in Full-Stack WP Developer. Covers registering routes with schemas, argument validation and sanitization, permission callbacks, controller classes, exposing post types and meta, authentication (cookie nonce, application passwords), pagination and errors, and registering abilities with input and output schemas and safety annotations. Use for any custom endpoint or machine-readable capability in a plugin or theme.

fswp-architect

Planning stage of Full-Stack WP Developer. Classifies the work (new plugin, new theme, update to an existing plugin or theme, add-on for another product, or WordPress Core patch), triages existing code with a bundled detection script, asks one round of essential questions, does competitive research, and produces one reviewable PRD or change brief with a single approval gate. Also covers Migration mode and multi-session handoff docs. Invoked by fswp-developer before any code is written; consult directly for PRD, change-brief, or handoff-doc questions.

fswp-core-contributor

WordPress Core contribution stage of Full-Stack WP Developer. Guides a contributor through finding or filing a Trac ticket, setting up the wordpress-develop checkout and test environment, writing a patch or GitHub pull request that follows Core coding standards, inline documentation, backward compatibility and tests, and preparing the ticket comment; also routes block-editor changes to the Gutenberg repository and security reports to the private process. Invoked by fswp-developer for Core patches; consult directly for Core workflow questions.

fswp-devops-engineer

Domain skill for WordPress development tooling in Full-Stack WP Developer. Covers local environments (wp-env with Docker, WordPress Playground and Blueprints), command-line site operations (plugin and theme management, database export, search-replace, cron, scaffolding), coding standards and static analysis (PHPCS with WordPress standards, PHPStan with WordPress stubs), PHP and JS testing setup, and the @wordpress/scripts toolchain. Use when setting up, running, or automating a WordPress dev or test environment.

fswp-maintainer

Change stage for existing WordPress code in Full-Stack WP Developer. Updates, fixes, refactors, and upgrades existing plugins and themes without breaking them, and builds add-ons for products you do not own (WooCommerce extensions, page-builder elements, extensions of other plugins) using hooks instead of edits to third-party files. Covers reading before changing, parity lists, deprecation, host compatibility, upgrade paths, and patch delivery. Invoked by fswp-developer after an approved change brief; consult directly for safe-change or add-on questions.

fswp-qa-engineer

Verification stage of Full-Stack WP Developer. Runs the mechanical gate for plugins and themes (house-rule scripts, PHP lint, PHPCS with WordPress standards, PHP compatibility, PHPStan with WordPress stubs), the manual checklist, PRD or change-brief scenario tests, and the pre-release check. Reports PASS, FAIL, or NOT RUN and never implies a skipped check passed. Invoked by fswp-developer after a build and again before delivery; consult directly to audit any plugin or theme folder.

fswp-reviewer

Independent review stage of Full-Stack WP Developer. Reviews a finished WordPress plugin, theme, add-on, or Core patch through a security lens (WordPress-specific vulnerabilities, REST and AJAX authorization with an API risk map, AI-generated-code risks), a quality lens (error handling, data and upgrade safety, performance, i18n, accessibility, comment accuracy, test gaps, class and type design, scope), and an optional lean lens for trimming over-engineering, reporting only high-confidence findings in a fixed format. Invoked by fswp-developer after the verify gate, normally through the fswp-code-reviewer agent; consult directly to review or optimize any WordPress code.

fswp-theme-developer

Theme build stage of Full-Stack WP Developer. Builds custom WordPress themes - block themes (theme.json, templates, template parts, patterns, style variations), classic themes (template hierarchy, functions.php, theme supports), hybrids, and child themes - with accessibility, escaping, and directory readiness built in, plus a scaffold script. Invoked by fswp-developer after an approved PRD for a new theme; consult directly for a specific theme pattern. For changes to an existing theme use fswp-maintainer.

syncwin/fswp-plugin-developer

Plugin build stage of Full-Stack WP Developer. House standards and code templates for real WordPress plugins (not shortcode snippets) - folder anatomy, activation/uninstall lifecycle, custom post types and tables, admin UI tiers, front-end output on the Atomic Framework, REST and cron, i18n, distribution, and the Tier 3 React admin stack - plus a scaffold script. Also the base structure for add-ons. Invoked by fswp-developer after an approved PRD; consult directly for a specific plugin build pattern.

Skills associés