2.1 KiB
2.1 KiB
Copilot instructions (wp-headless)
Overview
- This project is a full WordPress install (core lives in
wp-admin/+wp-includes/). Treat core files as upstream: don’t implement features by editing WordPress core or plugins. - Project-specific code lives in
wp-content/themes/moonshine/: - “Headless” stack is assembled via custom theme and plugins:
wp-content/themes/moonshine/provides the WordPress PHP theme logic and Nuxt frontend.wp-content/plugins/wp-graphql/provides the GraphQL endpoint (typically/graphql).wp-content/plugins/wpgraphql-acf/exposes ACF fields in the GraphQL schema.wp-content/plugins/wp-graphql-headless-login/provides GraphQL-based authentication flows.
Where to make changes
- Changes should only be made in the Moonshine theme
wp-content/themes/moonshine/ - WordPress PHP theme logic lives in
wp-content/themes/moonshine/includes/. - Nuxt frontend (Nuxt 4):
wp-content/themes/moonshine/- App entry & routes:
wp-content/themes/moonshine/app/(catch-all route isapp/pages/[...uri].vue). - Config:
wp-content/themes/moonshine/nuxt.config.ts. - Package manager: pnpm (
pnpm-lock.yamlis present).
- App entry & routes:
Developer workflows
- WP Headless - WordPress Composer project (root folder):
- Install PHP deps (also manages WP plugins/themes via Composer repos):
composer install. - Update PHP deps / WordPress plugins:
composer update. - Composer uses an internal Satis repo (
https://satis.ledevsimple.ca) pluswpackagist.org. - PHP linting (phpcs):
composer lint - PHP beautifier (phpcbf):
composer lintfix
- Install PHP deps (also manages WP plugins/themes via Composer repos):
- Moonshine - Headless WordPress theme based on Nuxt 4 (
wp-content/themes/moonshine/):- Dev:
pnpm dev - Build:
pnpm build - Lint (autofix):
pnpm lint
- Dev:
Conventions to follow
- Prefer adding project behavior via WordPress hooks/filters in the theme (
moonshine_*functions) or via plugins—avoid editing WP core at all cost. - In the Nuxt app, prefer the repo’s ESLint/Tailwind conventions (VS Code settings treat
*.cssas TailwindCSS and support Nuxt UIuiattributes).