3단계: 빌드
목표: 사이트가 로컬에서 실행됩니다. 실제 아이템이 핵심 함수를 통해 렌더링됩니다. 문의가 저장된 후 전달된 후 삭제됩니다. 구조 테스트가 통과합니다.
먼저 읽을 문서: 프로젝트의 AGENTS.md, 그 다음 references/architecture.md.
단계
- 로컬 사이트. 프로젝트의
README.md, "첫 실행" 섹션을 따르세요. 그런 다음 확인:ddev wp eval 'echo wp_get_environment_type();'가local을 출력해야 합니다. 그렇지 않으면references/local-env.md를 참조하세요.local이 출력될 때까지 사이트는 프로덕션 환경으로 인식합니다: 색인될 수 있고 실제 고객에게 이메일을 보낼 수 있습니다. - 예제 콘텐츠 유형 이름 바꾸기. 콘텐츠가 존재하기 전에 수행하세요.
<prefix>_offer가 비즈니스 단어(투어, 서비스, 코스)로 변경됩니다:modules/content.php의 포스트 타입, rewrite 슬러그, 레이블, 함수 이름(_get_offers,_render_offer_card),parts/offer-card.php파일 및 테스트. 포스트 타입 이름은 20자 제한이 있습니다. - 콘텐츠 모델링. 브리프에 필요한 모든 필드를 찾으세요. 각 필드를 sanitize 콜백과 auth 콜백이 있는 포스트 메타로 등록하세요. 가격은 메타의 숫자입니다. 0은 "요청 시"를 의미하며, 절대 "무료"가 아닙니다. 편집자가 더 풍부한 필드 화면이 필요하면 ACF(무료)를 추가할 수 있지만, 값은 핵심 함수를 통해서만 읽으세요.
- 데이터 파일 → 생성기 (소유자가 많은 아이템을 제공하는 경우):
- 각 아이템당 하나의 Markdown 또는 JSON 파일을
docs/data/<type>/에 유지하세요; - 해당 파일에서 포스트를 생성하거나 업데이트하는 멱등성 WP-CLI 스크립트를 작성하세요;
--dry-run옵션을 제공하세요;ddev wp eval-file - < scripts/<name>.php로 실행하세요.- 파일이 검토 가능한 진실이며, DB는 복사본입니다.
- 각 아이템당 하나의 Markdown 또는 JSON 파일을
- 템플릿은 섹션당 하나의 핵심 함수를 호출합니다.
- 레이아웃은 테마에 있습니다: 템플릿,
parts/, 스킨 오버라이드. - 데이터, 쿼리, 가격, 정책 문장 및 폼은 핵심에서 제공됩니다.
- 각 호출을
function_exists()로 감싸서, 플러그인이 없어도 템플릿이 치명적 오류를 발생시키지 않도록 하세요.
- 레이아웃은 테마에 있습니다: 템플릿,
- 문의. 파이프라인을
modules/enquiry.php에 유지하세요 (references/forms-and-leads.md).- 세 군데(폼, 핸들러, 세부 정보 상자)에 함께 필드를 추가하세요.
- 받은 편지함과 발신자를
wp-config.php상수에 설정하고, 절대 코드에 하드코딩하지 마세요.
- 정책 텍스트 (약관, 보증금, 취소): 하나의 함수(예:
<prefix>_policy( 'cancellation' ))로 핵심에 넣으세요. 템플릿이 그 함수를 출력하고, 템플릿이 정책 문장을 하드코딩하면 테스트가 실패합니다. - 새 모듈?
modules/에 파일 하나, 부트스트랩에require_once줄 하나를 추가하고, 같은 커밋에서tests/structure/core.spec.ts를 업데이트하세요. - 확인 및 커밋.
npm run test:structure와npm run lint:php를 실행하세요 (오류 0).- wp-rules-reviewer 에이전트에게 diff를 검토하도록 요청하세요.
- 커밋하세요 (Conventional Commits).
게이트 (SITE_STATUS.md에 체크)
-
wp_get_environment_type()= local - 핵심 플러그인과 차일드 테마 활성화; 스킨 로드
- 실제 아이템이 핵심 함수를 통해 렌더링됨; 하드코딩된 카드, 가격 또는 슬러그 없음
- 문의: 저장됨 → 이메일 전송 → 재시도 → 삭제됨; Mailpit에서 종단 간 테스트 완료
- 구조 테스트 통과; PHPCS 오류 0
절대 하지 말 것
- 비즈니스 로직,
WP_Query, 가격,pll_*호출 또는 정책 텍스트를 테마에 넣지 마세요. wp_unslash+ sanitize 함수 없이 원시$_POST또는$_GET사용 금지;esc_*없이 출력 금지.- 서드파티 API 키 또는 엔드포인트를 HTML이나 JS에 넣지 마세요. 서버에서 전달하세요.
- 원시
wp option update로 플러그인 모듈을 토글하지 마세요. 플러그인 자체 UI 또는 CLI를 사용한 후, 영향을 받는 모든 페이지를 다시 확인하세요. - 접두사가 없는 함수, 옵션, 훅, 메타 키 또는 nonce를 사용하지 마세요.