Technote

테마 · 플러그인 실무

ACF 무료판으로 반복 필드를 설계하는 방법

Repeater 가 없어서 막힌 게 아니라, 반복 데이터를 필드에 넣으려던 설계가 막힌 것입니다. 반복은 CPT 로 승격하면 정렬 · 검색 · 자동화가 코어 기능으로 풀립니다.

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 에 의존해 업데이트마다 깨지는 계열입니다. 구조로 풀 수 있는 문제를 의존성으로 풀지 않습니다.

플러그인을 하나 늘리기 전의 판단 기준은 업데이트가 멈춘 플러그인 판별과 이어집니다. 콘텐츠 구조 설계까지 포함한 사이트 정비는 최적화 지원 사업에서 상담할 수 있습니다.

이 주제의 다른 글

노하우 목록으로

테마 · 플러그인 실무

편집 가능한 영역을 디자인 전에 정합니다

CMS 가 표현할 수 없는 디자인은 배포된 뒤에도 계속 협상 대상으로 남습니다. 어디까지 편집자가 바꿀 수 있는지를 먼저 정하면 그 협상 자체가 사라집니다.

디자이너 3분 읽기

테마 · 플러그인 입문

업데이트가 멈춘 플러그인을 판별하는 기준

마지막 업데이트 날짜 하나로는 방치를 판정할 수 없습니다. 판별 신호 다섯 개를 함께 보고, 대체 불가라면 격리 조건이라도 걸어야 합니다.

기획자 · 운영 · 관리자 2분 읽기

테마 · 플러그인 심화

JS 없이 만드는 상호작용과 그것을 안전하게 하는 규칙

details · :target · :focus-within · :has() · 스크롤 타임라인으로 상당수의 상호작용이 스타일시트 안에서 끝납니다. 안전하게 만드는 규칙은 하나입니다 — 기본값이 완성된 상태여야 합니다.

디자이너 6분 읽기

₩270,000 · 신청하기