Nextora 자식 테마
Nextora의 자식 테마를 생성하고 감사합니다: 부트스트랩, 에셋 파이프라인 및 자식 블록 등록기. 부모 수준의 규칙은 부모 테마 자체에 있으며; 블록 내부는 ../nextora-gutenberg-blocks/SKILL.md에, 팔레트, 글꼴 또는 방문자 전환기에 관한 모든 것은 ../nextora-design-system/SKILL.md에 속합니다.
로드할 참조 자료
파일을 작성하기 전에 상대 경로로 다음을 읽으십시오:
references/child-contract.md— 슬러그/접두사 치환 테이블, 정확한 디렉토리 레시피, 헤더, 부트스트랩 및 enqueue 코드, 등록기, PHP 규칙, 샘플에서 관찰된 결함 및 다운스트림 WordPress 승인 레시피. 3단계에서 로드하고 코드를 작성하기 전에 반드시 읽어야 합니다.source-map.md— 각 규칙의 출처와 출처 태그, 흔히 잘못 알려진 사실.quality-gates.md— 완성된 자식 테마가 측정되는 기준. 완료를 선언하기 전에 로드하십시오.
로컬 소스를 읽는 것이 이 파일들을 읽는 것보다 우선합니다. 스킬 또는 참조 자료에 인용된 모든 값은 현재 사실이 아닌 기준점(anchor)입니다.
순서가 있는 워크플로우
1. 루트 확인, 가정하지 마십시오
라이브 설치에서 부모는 템플릿 디렉토리고 자식은 스타일시트 디렉토리입니다:
get_template_directory(); // 부모 루트
get_stylesheet_directory(); // 활성 테마 루트 (자식이 활성화된 경우 자식)
설치 외부에서는 Theme Name: Nextora가 있는 style.css를 부모로, Template: nextora가 있는 것을 자식으로 찾으십시오. 부모 소스가 실제로 누락된 경우 그렇게 말하고 Nextora 호환성을 주장하는 것을 중단하십시오; 부모에 의존하지 않는 작업만 완료하십시오. 기준점을 조작하거나 다른 테마를 조용히 대체하지 마십시오.
2. 제안하기 전에 증거를 읽으십시오
대상 자식 — 또는 샘플 자식(샘플이 이식 중인 경우)에서 다음을 확인하십시오:
style.css— 실제 헤더:Template,Version,Requires at least,Requires PHP,Tested up to,Text Domain,License.functions.php— 로드 순서 및 파일 범위에서 테마가 요구하는 사항.theme.json—version, 팔레트/글꼴 슬러그,customTemplates,templateParts.package.json및.nvmrc— 어떤 빌드 스크립트가 존재하는지, 어떤 Node 버전에서 실행되는지.inc/,blocks/,resources/,assets/— 이미 존재하는 것.
부모에서: style.css, functions.php, inc/assets/assets.php, blocks/blocks.php. 자식이 의존하는 것이므로 핸들 이름과 등록기 동작이 문서가 아닌 계약입니다.
3. 파일을 작성하기 전에 명명 테이블을 수정하십시오
references/child-contract.md를 로드하고 요청된 슬러그에 대한 치환 테이블을 채우십시오. 생성된 모든 식별자 — PHP 함수, 상수, 텍스트 도메인, 블록 이름, CSS 클래스, 사용자 정의 속성, 패턴 슬러그, 핸들 및 파일 기본 이름 — 는 해당 하나의 슬러그에서 비롯됩니다. 부모 소유 이름(nextora_*, NEXTORA_*, nextora/*, global-styles, nextora-app, nextora-main, 부모 팔레트 및 글꼴 슬러그, --nextora-font-* 역할)은 절대 이름을 바꾸지 않습니다.
4. 자식이 필요한 디렉토리만 배치하십시오
레시피는 references/child-contract.md에 있습니다. 필수: 루트 style.css, theme.json, functions.php. 해당하는 경우 inc/, resources/, assets/, templates/, parts/, patterns/를 추가하고, 자식이 실제로 사용자 정의 블록을 제공하는 경우에만 blocks/<block-slug>/를 추가하며, 글꼴을 제공하는 경우에만 글꼴 및 라이선스 파일을 추가하십시오. 빈 기능 스캐폴딩을 만들지 말고 전체 테마 트리를 복제하지 마십시오.
5. 헤더, 버전 상수, 부트스트랩 순서로 작성하십시오
순서가 중요합니다: inc/bootstrap/version.php는 단일 <CHILD_PREFIX>_VERSION 상수를 정의하고, style.css 헤더 Version:은 이와 같아야 하며, 에셋 파이프라인이 이를 대체 값으로 사용하므로 상수는 파이프라인이 필요로 하기 전에 존재해야 합니다. 헤더에서는 실제 최소값만 선언하십시오 — 다른 테마의 Tested up to 값을 복사하지 마십시오.
6. 자식이 부모보다 먼저 로드됨을 염두에 두고 functions.php를 작성하십시오
WordPress는 자식의 functions.php를 부모보다 먼저 로드하므로 파일 범위에서 부모 함수를 호출하거나 NEXTORA_* 상수를 읽을 수 없습니다. 스타일시트 디렉토리에서 자식의 _DIR/_URI 상수를 정의하고, Composer 오토로더는 읽을 수 있을 때만 require하며, 자식의 파일만 require하십시오. 모든 부모 의존 작업은 훅 안에 속하며, 부모 핸들을 이름으로 참조하고 먼저 등록되었는지 확인하십시오.
7. 에셋 파이프라인 연결
자식 스타일시트는 wp_enqueue_scripts 우선순위 25에서 부모의 global-styles 및 nextora-app이 등록된 경우 이에 의존하여; 자식 스크립트는 우선순위 30에서 nextora-main이 등록된 경우 이에 의존하여; 에디터 캔버스 스타일은 after_setup_theme 우선순위 20에서 add_editor_style()을 통해 연결합니다. 각 enqueue를 읽을 수 있는 파일 확인으로 보호하고, 충돌하지 않는 출력 기본 이름을 사용하십시오 — 자식의 assets/css/app.css 또는 assets/js/main.js는 부모의 에셋을 가릴 수 있습니다. 전체 코드 및 훅 테이블: references/child-contract.md.
8. 자식이 블록을 제공하는 경우에만 블록 등록기를 추가하십시오
WordPress는 테마의 blocks/ 폴더를 자동으로 스캔하지 않습니다. get_stylesheet_directory()에서 읽을 수 있는 block.json이 포함된 각 디렉토리를 init에서 등록하고, 자식 삽입기 카테고리를 추가하며, 클라이언트 측에서 카테고리 강제 변환을 미러링하십시오. 블록 메타데이터, 편집기 UI 및 렌더러는 ../nextora-gutenberg-blocks/SKILL.md에 있습니다. blocks/ 디렉토리가 없으면 등록기 요구 사항이 없습니다.
9. 디자인 시스템에 외관 처리를 맡기십시오
자식이 사전 설정 또는 방문자 색상/글꼴 전환을 따라야 하는 경우, 동일한 세션에서 ../nextora-design-system/SKILL.md를 로드하고 역할 바인딩, theme.json 글꼴 패밀리 및 사전 설정 파일을 결정하도록 하십시오. 자식의 본문, 제목 및 버튼은 Nextora 역할 변수를 통해 해결됩니다; 단일 샘플 디자인의 글꼴에 직접 고정되지 않습니다.
10. 실행 중인 사이트에 대해 확인하십시오
대상 자식의 package.json에 선언된 빌드 명령만 실행한 다음, 프론트엔드 페이지와 에디터 캔버스를 로드하고 에셋이 실제로 enqueue되었는지, 가드가 누락된 빌드를 숨기지 않았는지 확인하십시오. references/child-contract.md의 승인 레시피는 브라우저 수준의 증거입니다. 실행하지 않은 모든 것은 확인되지 않은 것으로 표시하십시오.
완료 확인
- 부모와 자식이 자체
style.css에서 확인되었으며, 가정되거나 하드코딩되지 않음. Template: nextora가 존재함; 헤더Version이<CHILD_PREFIX>_VERSION과 같음.Text Domain:이 자식 슬러그와 같으며, 자식 PHP/JS의 모든 번역 가능 문자열이 해당 도메인을 사용함.- 자식 파일 범위에서 부모 함수 호출 또는
NEXTORA_*읽기가 없음. - 모든 enqueue/editor-style 등록이 읽을 수 있는 파일 확인과 부모 핸들을 추가하기 전
wp_style_is()/wp_script_is()확인으로 보호됨. - 자식 에셋 기본 이름이 부모의
app.css/main.js와 충돌하지 않음. - 블록 등록기는
blocks/가 존재하는 경우에만 존재하며, 스타일시트 디렉토리를 사용하고, 읽을 수 없는block.json은 건너뛰며, 자식 카테고리를 등록함. - 구조에 대해
references/child-contract.md를 따르고quality-gates.md를 적용함. - 프론트엔드와 에디터 캔버스가 실제로 자식 에셋을 로드함.
경계
이 스킬은 Markdown 지침입니다. 생성기, 시작 테마 트리, 패키지 관리자 또는 설치 프로그램을 제공하지 않으며, 부모 또는 샘플 자식을 편집하지 않습니다. 부모의 npm run gen 스캐폴드는 부모 전용입니다; 자식 테마는 여기에 설명된 파일을 작성하여 생성됩니다.