콘텐츠로 건너뛰기
Home » [파이썬] 워드프레스 자동포스팅 rest api 활용법 ④

[파이썬] 워드프레스 자동포스팅 rest api 활용법 ④

1~3편의 파편적인 내용을 종합해서 워드프레스에 글쓰기 및 이미지 업로드를 동시에 하는 코드를 작성했습니다.

예제 코드

# 워드프레스 글쓰기 및 이미지 업로드
import requests
import base64

wordpress_user = 워드프레스 아이디
wordpress_password = 워드프레스 프로그램 패스워드
wordpress_credentials = wordpress_user + ':' + wordpress_password
wordpress_token = base64.b64encode(wordpress_credentials.encode())
wordpress_header = {'Authorization': 'Basic ' + wordpress_token.decode('utf-8')}

def create_wordpress_post():
    # 글쓰기 URL 엔드포인트
    write_url = 'https://sibmanwon.com/wp-json/wp/v2/posts'
    data = {
    'title' : '워드프레스 블로그 테스트',
    'status': 'draft',
    'slug' : '테스트',
    'content': '해당 포스팅은 테스트용입니다.'
    }
    response = requests.post(write_url, headers=wordpress_header, json=data)
    print(response)

def image_upload():
    # 이미지 업로드 앤드프인트
    image_url = 'https://sibmanwon.com/wp-json/wp/v2/media'

    # 로컬 이미지 경로
    image_path = '/Users/nanonda/sibmanwon/20231005.jpg'

    files = {'file': open(image_path, 'rb')}
    auth = (wordpress_user, wordpress_password)
    response = requests.post(url, files=files, auth=auth)

    # 업로드된 이미지의 ID 가져오기
    if response.status_code == 201:
        image_id = response.json()['id']
        print('이미지 업로드 성공적!')
        print('이미지 ID:', image_id)
        print(response.json())
    else:
        print('업로드 실패')
        print('에러 메시지:', response.text)
        exit()

# 코드 실행
create_wordpress_post()
image_upload()

코드 설명

위 파이썬 스크립트는 WordPress에 게시물을 만들고 이미지를 업로드하는 데 사용됩니다. 스크립트는 WordPress REST API를 사용하여 작동합니다. 다음은 코드의 주요 부분을 자세히 설명합니다:

라이브러리 가져오기

import requests
import base64
  • requests: HTTP 요청을 보내고 받기 위한 Python 라이브러리.
  • base64: 인증 정보를 인코딩하기 위한 라이브러리.

WordPress 자격 증명 설정

wordpress_user = '워드프레스 아이디' 
wordpress_password = '워드프레스 프로그램 패스워드'
  • WordPress 아이디와 비밀번호를 변수에 저장합니다.

HTTP Basic 인증을 위한 인증 헤더 생성

wordpress_credentials = wordpress_user + ':' + wordpress_password
wordpress_token = base64.b64encode(wordpress_credentials.encode())
wordpress_header = {'Authorization': 'Basic ' + wordpress_token.decode('utf-8')}
  • WordPress 아이디와 비밀번호를 조합하여 HTTP Basic 인증을 위한 인증 헤더를 생성합니다.

create_wordpress_post 메소드

WordPress에 새 게시물을 만들기 위한 메소드입니다. requests.post를 사용하여 게시물을 생성합니다. 게시물의 제목, 상태, 슬러그 및 내용은 JSON 데이터로 전송됩니다.

image_upload 메소드

이미지를 WordPress 미디어 라이브러리에 업로드하기 위한 함수입니다. requests.post를 사용하여 이미지를 업로드하고, 업로드된 이미지의 ID를 반환합니다.

create_wordpress_post, image_upload 메소드 호출

이 두 함수가 코드 아래에서 호출되며 WordPress에 게시물을 만들고 이미지를 업로드합니다.

코드 실행

해당 코드는 WordPress REST API를 사용하여 게시물을 만들고 이미지를 업로드하는 작업을 수행합니다. WordPress에서 REST API를 사용하려면 워드프레스 서버가 REST API를 지원하고 활성화되어 있어야 합니다. 또한 WordPress 아이디와 비밀번호를 사용하여 인증해야 합니다. 이 코드는 게시물과 이미지를 WordPress에 게시하려는 목적으로 사용합니다. 코드를 응용해서 내 입맛대로 포스팅을 할 수 있습니다.

실행 결과

글과 이미지 모두 정상 등록되었습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다