워드프레스 API는 개발자들이 워드프레스 웹사이트와 상호작용할 수 있는 강력한 기능이죠. 워드프레스 API로 할 수 있는 기능은 게시물 작성, 수정, 삭제, 사용자 관리 등이 있는데요. 이번에는 파이썬 코드를 이용해서 직접 동작할 수 있는 방식을 설명해드리고자 합니다. 만약 워드프레스 API의 원리나 KEY를 받는 방식을 아직 모르신다면 PART 1 한번 보시고 다시 이 글을 봐주세요.
✅ 혹시 이 정보가 필요하신가요!?
워드프레스 API 파이썬 기본 코드 작성 전 설정
파이썬 파일을 사용 전에 API 요청에 있어 request 방식을 사용합니다. 그래서 일단 request 라이브러리를 설치합니다.
pip install requests
저 같은 경우 이미 라이브러리가 설치되어 있기 때문에 이렇게 보이지, 새로 설치하시면 쫘라락 설치했다고 정상으로 뜰 겁니다.
자 이제 설치가 다 되었다면 파이썬 코드 예제를 분석해 보겠습니다.
워드프레스 API 코드 예제
기본적인 코드는 이렇게 되어있습니다. 사용방법은 간단합니다.
import requests
from requests.auth import HTTPBasicAuth
import json
# API 엔드포인트 URL
wordpress_url = "https://yourwordpresssite.com/wp-json/wp/v2"
posts_endpoint = f"{wordpress_url}/posts"
# 사용자명과 Application Password
username = "yourusername"
password = "yourapplicationpassword"
# 새로운 게시물 데이터
post_data = {
"title": "API로 작성된 게시물",
"content": "이것은 API를 통해 작성된 게시물입니다.",
"status": "draft"
}
# API 요청 보내기
response = requests.post(
posts_endpoint,
data=json.dumps(post_data),
headers={'Content-Type': 'application/json'},
auth=HTTPBasicAuth(username, password)
)
# 응답 확인
if response.status_code == 201:
print("글이 성공적으로 임시 저장되었습니다!")
post_url = response.json().get("link")
print(f"작성된 글 보기: {post_url}")
else:
print(f"글 작성 실패: {response.status_code}")
print(response.json())
API 엔드포인트 URL
여기서 첫 번째로 봐야 할 것은 엔드포인트 부분인데요.
엔드포인트에서 보면
# WordPress 사이트 URL과 엔드포인트 설정
wordpress_url = "https://yourwordpresssite.com/wp-json/wp/v2"
posts_endpoint = f"{wordpress_url}/posts"
맨 위에 post라는 부분이 보이실 겁니다. 이건 게시글을 작성하기 위한 엔드포인트입니다.
워드프레스 API로 할 수 있는 엔드포인트는 총 6가지가 있는데 POST 이외에 보자면,
- 게시물 목록 가져오기: GET /wp-json/wp/v2/posts
- 특정 게시물 가져오기: GET /wp-json/wp/v2/posts/{id}
- 게시물 업데이트: POST /wp-json/wp/v2/posts/{id}
- 게시물 삭제: DELETE /wp-json/wp/v2/posts/{id}
- 사용자 목록 가져오기: GET /wp-json/wp/v2/users
- 미디어 업로드: POST /wp-json/wp/v2/media
이렇게 나뉩니다.
여기서 특정 게시물 가져오기, 게시물 업데이트, 게시물 삭제의 경우는 각 게시글이 가지고 있는 특정 ID값을 추가해주셔야 합니다.
이때 ID값을 확인 방법은 간단합니다.
워드프레스 -> 특정 글 클릭 -> 편집
으로 들어가시면 상단에 본인 링크를 보실 수 있는데요. 이때 post = 857 이렇게 있는데 이때 ID가 857입니다.
사용자명과 Application Password
사용자명과 password 같은 경우에는 PAR 1 때 생성한 계정과 응용프로그램으로 생성한 API 키인데요.
이때 많이들 실수하시는 부분이 사용자명은 계정명이 맞지만 password의 경우는 계정 비밀번호가 아니고 생성한 API 키인걸 주의하셔야 합니다.
만약 생각이 안 나신다면 PART1을 한번 더 보고 오세요.
새로운 게시물 데이터
이번에는 이제 내용을 추가할 건데요.
말 그대로 이대로 작성하시면 됩니다.
title : 게시글 제목
content : 게시글 내용
이렇게 구성되어 있고
status의 경우는 API로 업로드 시 바로 발행을 할지, 임시글로 저장할 지에 대해 물어보는 겁니다. 이것도 종류가 많은데요.
필요하신 기능을 확인 후에 사용하시면 됩니다.
1. publish
- 설명: 게시글이 공개된 상태입니다. 모든 방문자가 웹사이트에서 볼 수 있습니다.
- 사용 사례: 최종 검토 및 승인이 완료된 게시글.
2. future
- 설명: 예약된 게시글입니다. 지정된 시간이 되면 자동으로 공개됩니다.
- 사용 사례: 특정 날짜와 시간에 게시를 원할 때.
3. draft
- 설명: 작성 중인 임시 게시글로, 아직 공개되지 않은 상태입니다.
- 사용 사례: 초안으로 저장된 게시글. 작성이 완료되지 않았거나 검토 중인 게시글.
4. pending
- 설명: 검토 대기 중인 게시글로, 검토 및 승인이 필요한 상태입니다.
- 사용 사례: 작성자가 작성한 후 편집자의 승인을 기다리는 게시글.
5. private
- 설명: 로그인한 사용자만 볼 수 있는 게시글입니다.
- 사용 사례: 특정 사용자 그룹만 접근할 수 있는 게시글.
6. inherit
- 설명: 자식 게시글이 부모의 상태를 상속받을 때 사용됩니다. 주로 첨부 파일이나 개정판에 사용됩니다.
- 사용 사례: 첨부 파일, 개정판 등의 자식 콘텐츠.
7. trash
- 설명: 삭제된 게시글로, 휴지통에 있는 상태입니다. 30일 후에 자동으로 영구 삭제됩니다.
- 사용 사례: 더 이상 필요하지 않거나 잘못된 게시글을 일시적으로 삭제할 때.
8. auto-draft
- 설명: 자동 저장된 초안입니다. 사용자가 아직 수동으로 저장하지 않은 상태입니다.
- 사용 사례: 새 게시글을 작성 중일 때 자동 저장 기능이 활성화된 경우.
9. archive
- 설명: 기본적으로 제공되는 상태는 아니지만, 플러그인 등을 통해 추가될 수 있는 상태입니다. 게시글이 아카이브 된 상태를 나타냅니다.
- 사용 사례: 과거 콘텐츠를 아카이브 하여 보관할 때.
워드프레스 API 동작 및 확인하기
이제 다 완료되었다면, 파일 저장 후에 python 워드프레스 API.py 파일을 실행시켜 봅니다.
그러면 임시저장이 성공되었다고 나옵니다.
워드프레스에도 가보면
정확하게 데이터가 들어온 것을 확인하실 수 있습니다.