IT 끄적 / / 2024. 6. 9. 15:16

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

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

 

워드프레스 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 파일을 실행시켜 봅니다. 

 

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

 

워드프레스에도 가보면

 

 

 

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

 

 

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유