워드프레스는 REST API를 공식 지원하는 블로그 플랫폼으로, 외부 프로그램에서 글을 자동으로 작성·수정·삭제할 수 있습니다. PostDot도 워드프레스 발행에 이 REST API를 활용합니다. 이 가이드에서는 개발자가 직접 WordPress REST API로 자동 포스팅 시스템을 구축하는 방법을 다룹니다.
REST API 기본 구조
WordPress REST API의 기본 엔드포인트는 https://사이트주소/wp-json/wp/v2/입니다. 글 관련 주요 엔드포인트:
| 엔드포인트 | 메서드 | 기능 |
|---|---|---|
/wp/v2/posts | GET | 글 목록 조회 |
/wp/v2/posts | POST | 새 글 작성 |
/wp/v2/posts/{id} | POST/PUT | 글 수정 |
/wp/v2/media | POST | 이미지 업로드 |
/wp/v2/categories | GET | 카테고리 목록 |
인증 설정: Application Password vs JWT
REST API로 글을 쓰려면 인증이 필요합니다. 두 가지 방식이 있습니다.
| 방식 | 설정 난이도 | 특징 |
|---|---|---|
| Application Password | 쉬움(기본 내장) | 워드프레스 5.6+ 기본, Basic Auth로 즉시 사용 |
| JWT 토큰 | 중간(플러그인) | 토큰 만료·갱신 관리, 대규모/보안 강화에 적합 |
워드프레스 5.6 이상에서는 Application Password 기능을 기본 지원합니다. 관리자 → 사용자 → 프로필에서 새 Application Password를 생성하세요. 이 비밀번호를 HTTP 요청의 Basic Auth 헤더에 포함하면 인증이 완료됩니다.
보안 주의사항:
- Application Password는 반드시 HTTPS 환경에서만 사용
- 비밀번호를 코드에 하드코딩하지 말고 환경 변수에 저장
- 사용하지 않는 비밀번호는 즉시 폐기
글 자동 발행 예시
Python으로 워드프레스에 글을 자동 발행하는 기본 흐름:
1단계: 이미지 업로드 → 미디어 ID 획득
2단계: 글 본문(HTML) + 메타데이터 구성
3단계: POST 요청으로 글 발행
4단계: 대표 이미지(featured_media) 연결
핵심 요청은 다음과 같은 형태입니다(개념 예시):
POST /wp-json/wp/v2/posts
Authorization: Basic (user:app_password)
Content-Type: application/json
{
"title": "글 제목",
"content": "<p>본문 HTML</p>",
"status": "publish",
"categories": [12],
"tags": [34, 56],
"featured_media": 789
}
이 전체 과정을 PostDot은 버튼 한 번으로 처리합니다. 직접 개발하지 않고도 워드프레스 블로그에 자동 발행이 가능합니다.
카테고리·태그·대표 이미지 다루기
- 카테고리/태그 — ID 배열로 전달합니다. 이름만 있으면
/wp/v2/categories·/wp/v2/tags로 ID를 먼저 조회하거나 생성하세요. - 대표 이미지 — 먼저
/wp/v2/media로 업로드해 미디어 ID를 받고, 글의featured_media에 그 ID를 넣습니다. - 본문 HTML — 구텐베르크 블록 없이 순수 HTML로도 발행됩니다. 표·이미지는 인라인 HTML로 구성.
자주 발생하는 문제와 해결
| 문제 | 원인 | 해결법 |
|---|---|---|
| 401 Unauthorized | 인증 실패 | Application Password 재확인, HTTPS 사용 |
| 이미지 업로드 실패 | 파일 크기 초과 | php.ini의 upload_max_filesize 증가 |
| 한글 깨짐 | 인코딩 문제 | UTF-8 헤더 명시 |
| 글이 비공개로 발행 | status 미지정 | status: 'publish' 명시 |
| 403 / API 비활성 | 보안 플러그인 차단 | REST API 허용 설정·화이트리스트 |
REST API 보안 강화
- 최소 권한 계정 — 발행 전용 계정에 Editor 권한만 부여(Admin 지양).
- HTTPS 강제 — Basic Auth는 평문 노출 위험이 있어 HTTPS 필수.
- 요청 제한 — 비정상 대량 요청을 막는 레이트 리밋·방화벽.
- 키 회전 — Application Password를 주기적으로 폐기·재발급.
PostDot vs 직접 구현 비교
REST API를 직접 구현하면 자유도는 높지만 개발·유지보수 비용이 들고, 네이버·티스토리에는 동일한 방법을 적용할 수 없습니다. PostDot은 워드프레스 REST API를 내부적으로 활용하면서 4대 플랫폼 동시 발행을 지원하므로, 개발 시간을 줄이면서도 더 넓은 범위를 커버합니다.
자주 묻는 질문 (FAQ)
Q. REST API로 예약 발행도 가능한가요?
네, 글 작성 시 status: 'future'와 date 필드를 지정하면 예약 발행이 가능합니다. PostDot의 예약 발행 기능도 이 방식을 활용합니다.
Q. 코딩 없이 워드프레스 자동 포스팅을 하려면?
워드프레스 자동 포스팅 플러그인이나 PostDot 같은 자동화 도구를 사용하면 코딩 없이도 자동 포스팅이 가능합니다.
Q. 워드프레스닷컴(무료)에서도 REST API를 쓸 수 있나요?
자체 호스팅(워드프레스.org)이 가장 자유롭습니다. 워드프레스닷컴은 플랜에 따라 API 접근이 제한될 수 있으니, 자동 포스팅을 본격적으로 하려면 자체 호스팅을 권장합니다.
관련 글 더 보기: