콘텐츠로 이동

AI 검색

AI가 매뉴얼 전체에서 답변을 찾아드립니다.

2.3. 테이블 정의서


SP100주년 뮤지엄 사이트는 WordPress Multisite의 blog_id=3으로 운영됩니다.
WordPress 멀티사이트 구조에 따라 wp_3_* 접두사를 가진 테이블을 사용합니다.

blog_id접두사사이트
1wp_국문 메인
2wp_2_영문
3wp_3_뮤지엄

테이블명용도museum 사용
wp_3_posts페이지, 포스트, CPT 저장✅ 필수
wp_3_postmeta포스트 메타데이터 (ACF 필드 포함)✅ 필수
wp_3_options사이트 설정✅ 필수
wp_3_comments이벤트 댓글✅ 사용
wp_3_commentmeta댓글 메타데이터✅ 사용
테이블명용도museum 사용
wp_3_terms카테고리/태그 정의△ 선택적
wp_3_term_taxonomy택소노미 관계△ 선택적
wp_3_term_relationships포스트-택소노미 연결△ 선택적
wp_3_termmeta택소노미 메타△ 선택적
wp_3_links링크 (미사용)
wp_3_usermeta사용자 메타△ 권한용

C. 공유 테이블 (멀티사이트 공통)

섹션 제목: “C. 공유 테이블 (멀티사이트 공통)”
테이블명용도비고
wp_users사용자 계정전체 사이트 공유
wp_usermeta사용자 메타wp_3_capabilities 포함
wp_blogs사이트 목록blog_id=3 행
wp_sitemeta네트워크 설정allowedthemes 등
wp_site네트워크 정보-

설명: 페이지, 포스트, Custom Post Type 저장

컬럼명타입설명예시
IDbigint(20)포스트 고유 ID1, 2, 3…
post_authorbigint(20)작성자 ID1
post_datedatetime작성일시2026-04-20 10:00:00
post_contentlongtext본문 내용HTML 콘텐츠
post_titletext제목”80년의 기록”
post_statusvarchar(20)상태publish, draft
post_namevarchar(200)URL 슬러그”80-years”
post_typevarchar(20)포스트 타입page, event, winner
post_parentbigint(20)부모 포스트 ID0
menu_orderint(11)정렬 순서0, 1, 2…

사용되는 post_type:

post_type설명템플릿
page일반 페이지page-*.php
event이벤트 (CPT)single-event.php
winner수상작 (CPT)single-winner.php
archive아카이브 (CPT)page-archive-100.php

설명: 포스트 메타데이터 (ACF 필드 값 저장)

컬럼명타입설명
meta_idbigint(20)메타 고유 ID
post_idbigint(20)연결된 포스트 ID
meta_keyvarchar(255)메타 키
meta_valuelongtext메타 값

주요 meta_key 패턴:

패턴설명예시
_edit_lock편집 잠금시스템
_thumbnail_id대표 이미지 ID123
_wp_page_template페이지 템플릿page-80-years.php
field_*ACF 필드 참조 키field_648xxxxx
[field_name]ACF 필드 값커스텀 데이터

설명: 이벤트 댓글 저장

컬럼명타입설명
comment_IDbigint(20)댓글 고유 ID
comment_post_IDbigint(20)연결된 이벤트 ID
comment_authortinytext작성자명
comment_author_emailvarchar(100)이메일
comment_datedatetime작성일시
comment_contenttext댓글 내용
comment_approvedvarchar(20)승인 상태 (0, 1, spam)
comment_parentbigint(20)부모 댓글 ID (답글)
user_idbigint(20)로그인 사용자 ID

설명: 사이트 설정값 저장

컬럼명타입설명
option_idbigint(20)옵션 고유 ID
option_namevarchar(191)옵션 이름
option_valuelongtext옵션 값
autoloadvarchar(20)자동 로드 여부

뮤지엄 사이트 주요 옵션:

option_name설명
siteurlhttps://spsamhwa.com/museum사이트 URL
homehttps://spsamhwa.com/museum홈 URL
blogname뮤지엄사이트명
templatesknk부모 테마
stylesheetsknk_80활성 테마
WPLANGko_KR언어

설명: 멀티사이트 목록

컬럼명타입설명
blog_idbigint(20)사이트 ID
site_idbigint(20)네트워크 ID
domainvarchar(200)도메인
pathvarchar(100)경로
registereddatetime등록일
publictinyint(2)공개 여부

뮤지엄 행:

blog_id: 3
domain: spsamhwa.com
path: /museum/

정의 위치: sknk_80/inc/event-cpt.php

속성
post_typeevent
라벨이벤트
publictrue
has_archivetrue
supportstitle, editor, thumbnail

정의 위치: sknk_80/inc/event-cpt.php

속성
post_typewinner
라벨수상작
publictrue
has_archivefalse
supportstitle, editor, thumbnail

정의 위치: sknk_80/inc/archive-cpt.php

속성
post_typearchive
라벨아카이브
publictrue
has_archivefalse
supportstitle, editor, thumbnail
menu_icondashicons-images-alt2

커스텀 메타 필드:

meta_key타입설명
archive_categorytext카테고리 분류명
category_visibleselect (Y/N)카테고리 프론트 표시 여부
title_visibleselect (Y/N)제목 프론트 표시 여부
content_visibleselect (Y/N)내용 프론트 표시 여부

참고: ACF 필드는 WordPress 관리자 UI에서 관리됩니다.
코드에서 직접 정의되지 않으며, wp_3_posts (post_type=‘acf-field-group’)에 저장됩니다.

Terminal window
# WP-CLI로 ACF 필드 그룹 조회
ddev wp --url=samhwa.sknkwoxs.com/museum post list --post_type=acf-field-group
# 또는 관리자 화면에서 확인
# Custom Fields > Field Groups
// 필드 값 조회
$value = get_field('field_name', $post_id);
// 필드 값 저장
update_field('field_name', $value, $post_id);
// 서브필드 (Repeater)
while (have_rows('repeater_field')) {
the_row();
$sub = get_sub_field('sub_field');
}

테이블 전체 구조

Post Type 관계


  • 뮤지엄 사이트(blog_id=3)는 MIS(Postgres) 연동이 없습니다
  • migration/*.yml 배치는 blog_id=1, 2에서만 실행됨
  • sknk/inc/register.php에서 blog_id=3 분기로 제외 처리됨
Terminal window
# 뮤지엄 사이트 DB 백업
ddev wp --url=samhwa.sknkwoxs.com/museum db export museum-backup.sql
# 특정 테이블만 백업
ddev wp db export --tables=wp_3_posts,wp_3_postmeta museum-posts.sql
Terminal window
# DB 복원
ddev wp db import museum-backup.sql
# URL 치환 (개발 ↔ 운영)
ddev wp search-replace 'samhwa.sknkwoxs.com/museum' 'spsamhwa.com/museum' --url=samhwa.sknkwoxs.com/museum