ACF Pro 의 Repeater 는 편리하지만, 라이선스가 없다고 콘텐츠 모델이 막히지는 않습니다. 오히려 무료판의 제약이 더 튼튼한 구조를 강제하는 경우가 많습니다. 원칙은 세 줄입니다: 반복은 CPT, 중첩은 Group, 전역은 코드.
Repeater 가 저장되는 방식부터
Repeater 는 행마다 items_0_title · items_1_title 같은 인덱스 키로 포스트메타에 흩어집니다. 이 구조의 대가는 명확합니다.
승격 예시 — FAQ
“FAQ 페이지에 질문 반복 필드” 대신 faq 포스트 타입을 등록하고, 질문 하나 = 포스트 하나로 둡니다. 노출 순서는 menu_order, 조립은 페이지 템플릿의 쿼리가 담당합니다.
register_post_type( 'faq', [
'public' => false, // 단독 URL 없음 — 얇은 문서 양산 방지
'show_ui' => true,
'publicly_queryable' => false,
'supports' => [ 'title', 'editor', 'page-attributes' ],
] );
이렇게 두면 wp post create --post_type=faq 로 생성이 자동화되고, 검색 · REST · 정렬이 전부 코어 기능으로 해결됩니다. 반복 필드였다면 이 셋을 각각 우회 구현해야 했을 일입니다.
나머지 두 원칙
- 중첩은 Group — “한 덩어리의 하위 필드”(예: 지표의 before/after)는 무료판에 있는 Group 필드로 충분합니다.
- 전역은 코드 — Options Page 대신 테마의 config PHP 파일. 설정이 git 에 남아 diff · 리뷰 · 이관이 전부 공짜가 됩니다.
무료판에 Repeater 를 이식해 준다는 서드파티 플러그인은 피하세요 — ACF 내부 API 에 의존해 업데이트마다 깨지는 계열입니다. 구조로 풀 수 있는 문제를 의존성으로 풀지 않습니다.
플러그인을 하나 늘리기 전의 판단 기준은 업데이트가 멈춘 플러그인 판별과 이어집니다. 콘텐츠 구조 설계까지 포함한 사이트 정비는 최적화 지원 사업에서 상담할 수 있습니다.