워드프레스 API 사용하기 (PART 2)

워드프레스 API는 개발자들이 워드프레스 웹사이트와 상호작용할 수 있는 강력한 기능이죠. 워드프레스 API로 할 수 있는 기능은 게시물 작성, 수정, 삭제, 사용자 관리 등이 있는데요. 이번에는 파이썬 코드를 이용해서 직접 동작할 수 있는 방식을 설명해드리고자 합니다. 만약 워드프레스 API의 원리나 KEY를 받는 방식을 아직 모르신다면 PART 1 한번 보시고 다시 이 글을 봐주세요.

 혹시 이 정보가 필요하신가요!? 









워드프레스 API 파이썬 기본 코드 작성 전 설정

파이썬 파일을 사용 전에 API 요청에 있어 request 방식을 사용합니다. 그래서 일단 request 라이브러리를 설치합니다.



pip install requests

워드프레스 API 사용하기 (PART 2)

저 같은 경우 이미 라이브러리가 설치되어 있기 때문에 이렇게 보이지, 새로 설치하시면 쫘라락 설치했다고 정상으로 뜰 겁니다.

자 이제 설치가 다 되었다면 파이썬 코드 예제를 분석해 보겠습니다.



워드프레스 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입니다.

워드프레스 API 사용하기 (PART 2)

사용자명과 Application Password

사용자명과 password 같은 경우에는 PAR 1 때 생성한 계정과 응용프로그램으로 생성한 API 키인데요.

이때 많이들 실수하시는 부분이 사용자명은 계정명이 맞지만 password의 경우는 계정 비밀번호가 아니고 생성한 API 키인걸 주의하셔야 합니다.

만약 생각이 안 나신다면 PART1을 한번 더 보고 오세요.





워드프레스 API 사용하기 (PART 2)워드프레스 API 사용하기 (PART 2)



새로운 게시물 데이터

이번에는 이제 내용을 추가할 건데요.

워드프레스 API 사용하기 (PART 2)

말 그대로 이대로 작성하시면 됩니다.

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 파일을 실행시켜 봅니다. 

워드프레스 API 사용하기 (PART 2)

그러면 임시저장이 성공되었다고 나옵니다.

워드프레스에도 가보면

워드프레스 API 사용하기 (PART 2)워드프레스 API 사용하기 (PART 2)

정확하게 데이터가 들어온 것을 확인하실 수 있습니다.









댓글 남기기