본문 바로가기
코드리뷰/워드프레스

python으로 워드프레스 글 업로드하는 방법

by 디마드 2024. 2. 15.

워드프레스에 자동 포스팅 하는 방법은 크게 3가지다. 

  1. 워드 프레스에서 글쓰기
  2. 워드프세스 rest api 이용하기
  3. python의 워드프레스 xmlrpc 이용하기

 

3번째 방법을 이용해 보겠다. 

(1) 사전 설치 필요 : 터미널 창에 설치한다.

pip install python-wordpress-xmlrpc

pip install datetime

pip install pytz    

(2) python 소스코드 작성

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost

from wordpress_xmlrpc.compat import xmlrpc_client
from wordpress_xmlrpc.methods.media import UploadFile

site_url = "http://gus.local/xmlrpc.php"
username = "username"
password = "pwd"

client = Client(site_url,username, password)

post = WordPressPost()

title = "게시글 제목입니다."
content = "여기에 내용을 담았어요."

post.title = title
post.content = content
post.post_status = "publish"

categories = ["워드프레스"]
tags = ["자동포스팅","워드프레스"]
post.terms_names = {
    # "key" : "value"
    "category" : categories
    ,"post_tag" : tags
}


# 썸네일 등록
image_path = "./img1.png"
image_data = None
# 바이너리 모드로 이미지 읽기
with open(image_path, 'rb') as f:
    image_data = f.read()

# 이미지 데이터 업로드    
data = {
    "name" : f"{title}.png" # SEO 유리
    ,"type" : "image/jpg"
    ,"caption" : ""
    ,"description" : f"{title}"
}
data['bits'] = xmlrpc_client.Binary(image_data)

res = client.call(UploadFile(data))

thumbnail_id = res['id']
thumbnail_id = int(thumbnail_id)
post.thumbnail = thumbnail_id

client.call(NewPost(post))
print("포스팅 완료")
# input()

 

이미지 업로드 - 썸네일 출력 화면

이미지 원본은 img1.png이지만 썸네일 이름은 게시글 제목으로 만든다. 그래야 SEO에 유리하다. 

이지지 업로드가 정상적으로 되면, id를 반환한다. 이 값을 post.thumbnail에 담아 포스팅한다. 

res = client.call(UploadFile(data))

thumbnail_id = res['id']
thumbnail_id = int(thumbnail_id)
post.thumbnail = thumbnail_id

client.call(NewPost(post))
print("포스팅 완료")

 

자동 게시글 확인해 보자.

반응형

댓글