umairmsm/wp-build

Étape 3 d'une construction WordPress wp-site-kit – site DDEV local, plugin must-use central (modules), thème enfant de présentation avec skins, modèle de contenu (types personnalisés, meta, WP_Query, fonctions de rendu) et pipeline d'enquêtes qui sauvegarde les prospects avant de les transmettre.

Qu'est-ce que wp-build ?

Ce skill guide la troisième et dernière étape de construction d'un site WordPress basé sur l'architecture wp-site-kit. Il garantit que le site tourne en environnement local via DDEV, que tous les composants réels (contenus, prix, politiques) sont rendus via les fonctions du noyau du plugin must-use, et que le pipeline d'enquêtes (sauvegarde, envoi, relance, purge) est entièrement fonctionnel et testé.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/umairmsm/wp-site-kit/tree/HEAD/skills/wp-build

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

Étape 3 : Construction

Objectif : le site tourne en local. Les éléments réels s'affichent via les fonctions du noyau. Les enquêtes sont sauvegardées, puis transmises, puis purgées. Les tests de structure sont au vert.

Lire d'abord : le fichier AGENTS.md du projet, puis references/architecture.md.

Étapes

  1. Site local. Suivre la section « Premier lancement » du README.md du projet. Vérifier ensuite : ddev wp eval 'echo wp_get_environment_type();' doit afficher local. Si ce n'est pas le cas, consulter references/local-env.md. Tant que ce n'est pas local, le site se considère en production : il peut être indexé et envoyer des emails à de vrais clients.
  2. Renommer le type de contenu exemple. À faire avant que le contenu existe. <prefix>_offer devient le mot métier (tour, service, cours) : le type de publication, l'identifiant de réécriture et les libellés dans modules/content.php, ainsi que les noms de fonctions (_get_offers, _render_offer_card), le fichier parts/offer-card.php et les tests. Les noms de types de publication ont une limite de 20 caractères.
  3. Modéliser le contenu. Trouver chaque champ nécessaire au brief. Enregistrer chacun comme meta de publication avec une fonction de nettoyage et une fonction d'autorisation. Les prix sont des nombres dans les meta. 0 signifie « sur demande », jamais « gratuit ». Si les éditeurs ont besoin d'écrans de champs plus riches, ajouter ACF (gratuit) par-dessus, mais lire les valeurs uniquement via les fonctions du noyau.
  4. Fichiers de données → générateur (lorsque le propriétaire fournit de nombreux éléments) :
    • conserver un fichier Markdown ou JSON par élément dans docs/data/<type>/ ;
    • écrire un script WP-CLI idempotent qui crée ou met à jour les publications à partir de ces fichiers ;
    • lui ajouter une option --dry-run ;
    • l'exécuter avec ddev wp eval-file - < scripts/<nom>.php. Les fichiers sont la vérité révisable ; la base de données est la copie.
  5. Les templates appellent une fonction du noyau par section.
    • La mise en page vit dans le thème : templates, parts/, surcharges de skin.
    • Les données, requêtes, prix, phrases de politique et formulaires proviennent du noyau.
    • Protéger chaque appel avec function_exists(), afin qu'un template ne provoque jamais d'erreur fatale si le plugin est manquant.
  6. Enquêtes. Conserver le pipeline dans modules/enquiry.php (references/forms-and-leads.md).
    • Ajouter les champs à trois endroits simultanément : le formulaire, le gestionnaire et la boîte de détails.
    • Définir la boîte de réception et l'expéditeur dans les constantes de wp-config.php, jamais dans le code.
  7. Texte de politique (conditions générales, acomptes, annulation) : le placer dans le noyau sous forme d'une fonction (par exemple <prefix>_policy( 'cancellation' )). Les templates appellent cette fonction, et un test échoue si un template code en dur une phrase de politique.
  8. Nouveau module ? Ajouter un fichier dans modules/, une ligne require_once dans le bootstrap, et mettre à jour tests/structure/core.spec.ts dans le même commit.
  9. Vérifier et valider.
    • Exécuter npm run test:structure et npm run lint:php (0 erreurs).
    • Demander à l'agent wp-rules-reviewer de passer en revue le diff.
    • Valider (Conventional Commits).

Porte (cocher dans SITE_STATUS.md)

  • wp_get_environment_type() = local
  • Plugin noyau et thème enfant actifs ; le skin se charge
  • Les éléments réels s'affichent via les fonctions du noyau ; pas de cartes, prix ou identifiants codés en dur
  • Enquête : sauvegardée → envoyée par email → relancée → purgée ; testée de bout en bout dans Mailpit
  • Tests de structure au vert ; PHPCS 0 erreurs

Jamais

  • Logique métier, WP_Query, prix, appels pll_* ou texte de politique dans le thème.
  • $_POST ou $_GET bruts sans wp_unslash + une fonction de nettoyage ; sortie sans esc_*.
  • Clés API ou points de terminaison tiers dans le HTML ou le JS. Transmettre depuis le serveur.
  • Activer/désactiver des modules de plugin avec wp option update brut. Utiliser l'interface utilisateur ou la CLI du plugin, puis revérifier chaque page affectée.
  • Fonctions, options, hooks, clés de meta ou nonces sans préfixe.

Individual skills in this repo

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

umairmsm/wp-content

Stage 4 of a wp-site-kit WordPress build - real copy and photos. Content truth (facts only from the owner), AI drafts and owner approval, claims audits, banned words and fake proof, legal pages, the photo pipeline (dedupe, real-only, EXIF strip, WebP sizes, alt text, AI image register), and recorded content changes. Use for "write the copy", "add photos", "the owner sent new photos", "check for duplicates", "update prices or text on the live site", "legal pages".

umairmsm/wp-design

Stage 2 of a wp-site-kit WordPress build - design direction, a static HTML/CSS prototype with design tokens, owner sign-off with screenshots, self-hosted fonts, and porting the approved look into a swappable WordPress skin. Use for "design the site", "new look", "redesign", "change colours or fonts", "make a new skin", "port the prototype to WordPress".

umairmsm/wp-kickoff

Stage 1 of a wp-site-kit WordPress build. Use when starting a new WordPress website or taking over or rebuilding an existing one - discovery brief, stack decision, creating the project with bin/wp-site-new, locked decisions, private repo and credentials inventory. Triggers - "new WordPress site", "start a client website", "rebuild this site", "take over this WordPress site".

umairmsm/wp-operate

Stage 8 of a wp-site-kit WordPress build and everything after launch - backups with an off-machine copy, restore drills, the disaster-recovery runbook, credentials inventory, update policy, alerts, and working from more than one machine (bridge file, workstation doctor, encrypted state bundle, rescuing unpushed work). Use for "backup", "restore", "move to a new machine/server", "update plugins", "what if the server dies", "work from the cloud box", "set up a second machine".

umairmsm/wp-seo

Stage 5 of a wp-site-kit WordPress build - titles and descriptions, canonical URLs, one schema owner and JSON-LD, sitemaps, robots.txt and llms.txt, AI crawler access, redirects (301 vs 302), legacy URL maps, Search Console, and adding languages one pilot at a time with Polylang (hreflang, .po/.mo strings, native review). Use for "SEO", "schema", "redirect", "old URLs", "translate the site", "add French/Spanish", "hreflang", "canonical".

umairmsm/wp-ship

Stage 7 of a wp-site-kit WordPress build - staging behind Cloudflare Access, server hardening, safe deploys from a commit (scripts/deploy-safe.sh), database content changes, the launch audit, DNS cutover without breaking a running business, and the first week after launch. Use for "deploy", "set up staging", "go live", "launch", "cutover", "move DNS", "harden the server".

umairmsm/wp-site

Start here for any WordPress website built with wp-site-kit, from an empty folder to a live site. Use when someone says "build a WordPress site", "new website for a client", "where are we on the site", "what is next before launch", or asks to continue a site project. Finds the current stage from SITE_STATUS.md, applies the hard rules, and hands over to the right stage skill.

Skills associés