본문 바로가기

프로그래밍

워드프레스 테이블 wp_posts

워드프레스의 wp_posts 테이블은 워드프레스의 모든 콘텐츠(포스트, 페이지, 첨부 파일 등)를 저장하는 핵심 테이블입니다. 각 필드의 역할을 표로 정리하면 다음과 같습니다:


필드 이름데이터 타입설명

ID BIGINT(20) UNSIGNED 각 포스트(페이지, 첨부 파일 등)의 고유 ID. 워드프레스에서 기본 키로 사용됩니다.
post_author BIGINT(20) UNSIGNED 포스트를 작성한 사용자의 ID (wp_users 테이블의 ID 필드와 연결).
post_date DATETIME 포스트가 작성된 날짜 및 시간.
post_date_gmt DATETIME 포스트가 GMT(그리니치 표준시) 기준으로 작성된 날짜 및 시간.
post_content LONGTEXT 포스트 본문의 내용. 페이지, 글, 사용자 정의 포스트, 첨부 파일의 본문 데이터 등이 저장됩니다.
post_title TEXT 포스트의 제목.
post_excerpt TEXT 포스트의 요약문. 일부 테마나 플러그인에서 요약문을 표시할 때 사용됩니다.
post_status VARCHAR(20) 포스트의 상태. 대표적인 값: publish, draft, pending, future, private, trash 등.
comment_status VARCHAR(20) 댓글 허용 여부. 대표적인 값: open(허용), closed(허용 안 함).
ping_status VARCHAR(20) 핑백/트랙백 허용 여부. 대표적인 값: open(허용), closed(허용 안 함).
post_password VARCHAR(255) 비밀번호로 보호된 포스트의 비밀번호. 비밀번호가 없으면 빈 문자열로 저장됩니다.
post_name VARCHAR(200) 포스트의 슬러그(slug). URL에서 사용되는 고유 식별자. (예: example-post)
to_ping TEXT 이 포스트가 핑백을 보내야 할 URL 목록.
pinged TEXT 이 포스트가 핑백을 보낸 URL 목록.
post_modified DATETIME 포스트가 마지막으로 수정된 날짜 및 시간.
post_modified_gmt DATETIME GMT(그리니치 표준시) 기준으로 포스트가 마지막으로 수정된 날짜 및 시간.
post_content_filtered LONGTEXT 필터링된 콘텐츠. 주로 플러그인이나 특정 작업에 의해 처리된 데이터가 저장되며, 대부분의 경우 비어 있습니다.
post_parent BIGINT(20) UNSIGNED 부모 포스트의 ID. 첨부 파일과 같은 경우 원본 포스트의 ID를 참조합니다.
guid VARCHAR(255) 포스트의 전역 고유 식별자(Global Unique Identifier). 주로 첨부 파일의 URL로 사용됩니다.
menu_order INT(11) 포스트나 페이지의 정렬 순서. 주로 페이지나 사용자 정의 포스트 타입에서 사용됩니다.
post_type VARCHAR(20) 포스트의 타입. 대표적인 값: post(일반 글), page(페이지), attachment(첨부 파일), revision(수정본) 등.
post_mime_type VARCHAR(100) MIME 타입. 주로 첨부 파일의 타입을 나타냅니다 (예: image/jpeg, application/pdf 등).
comment_count BIGINT(20) 이 포스트에 달린 댓글의 총 개수.

 


주요 필드의 용도와 관계

1. 기본 필드

  • ID: 각 포스트를 고유하게 식별합니다.
  • post_title: 포스트나 페이지의 제목입니다.
  • post_content: 포스트의 본문입니다.
  • post_excerpt: 요약문으로, 본문을 요약하거나 간략히 표현하는 데 사용됩니다.

2. 작성 및 수정 정보

  • post_date, post_date_gmt: 포스트가 작성된 시간.
  • post_modified, post_modified_gmt: 마지막으로 수정된 시간.

3. 포스트 유형 및 상태

  • post_type: 포스트 유형. 일반적으로 post(블로그 글)와 page(페이지)가 가장 많이 사용됩니다.
  • post_status: 포스트 상태. 공개 여부나 게시 상태를 나타냅니다.

4. 첨부 파일 관련

  • post_mime_type: 첨부 파일의 MIME 타입.
  • post_parent: 첨부 파일이 연결된 부모 포스트의 ID.

5. 고유 식별 및 링크

  • guid: 고유 식별자. 첨부 파일에서는 파일의 URL로 주로 사용됩니다.
  • post_name: 슬러그. URL에서 사용되는 읽기 쉬운 고유 식별자입니다.

wp_posts 테이블의 활용 예

  1. 일반 블로그 포스트 가져오기
    SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish';

  2. 특정 페이지 가져오기
    SELECT * FROM wp_posts WHERE post_type = 'page' AND post_name = 'about-us';

  3. 첨부 파일 검색
    SELECT * FROM wp_posts WHERE post_type = 'attachment';

  4. 댓글 수가 많은 포스트 상위 10개 가져오기
    SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY comment_count DESC LIMIT 10;