XMLRPC 를 이용해서 워드프레스 자동포스팅 방법을 바로 앞에 포스팅에서 설명했습니다. 이번에는 파이썬으로 이미지를 첨부하는 방법까지 알아보도도록 하겠습니다. XMLRPC 를 이용해서 워드프레스 자동포스팅 방법을 확인하고 싶다면 여기를 클릭해서 확인하시고 다시 오시기 바랍니다. 파이썬으로 이미지 첨부하는 방법에 대해 알아보고 싶다면 따라오세요~
1. 파이썬 XMLRPC 를 이용한 이미지 첨부 - 함수
이미지를 첨부하는것도 XMLRPC 를 이용해서 업로드합니다. 여기서 중요한것은 이미지를 업로드 한후 그 이미지의 url 과 id 를 결과값으로 받아오는게 포인트 입니다.
소스코드는 아래와 같습니다.
import os
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.users import GetUserInfo
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost
from wordpress_xmlrpc.methods import media
class WordPressAuto:
def __init__(self):
self.id="autobot"
self.password="PxxxxxxnW0HjMXCLy8cq****"
self.url="https://xxx.com/xmlrpc.php"
self.which="draft"
self.wp = Client(self.url, self.id, self.password)
def wp_auto_post(self,title,content,attachment_id,category:list):
post = WordPressPost()
post.post_status = self.which
post.title = title
post.content = content
post.thumbnail = attachment_id
post.terms_names = {
"category": category
}
self.wp.call(NewPost(post))
def wp_upload_image(self,in_image_file_name, out_image_file_name):
if os.path.exists(in_image_file_name):
with open(in_image_file_name, 'rb') as f:
binary = f.read()
data = {
"name": out_image_file_name,
"type": 'image/png',
"overwrite": True,
"bits": binary
}
response = self.wp.call(media.UploadFile(data))
media_id = response['id']
media_url = response['url']
print(in_image_file_name.split('/')
[-1], 'Upload Success : id=%s' % media_id)
return {"image_id": media_id, "image_url": media_url}
else:
print(in_image_file_name.split('/')[-1], 'NO IMAGE')
위 소스에서 수정할 부분 알려드립니다.
self.id="autobot"
self.password="PxxxxxxnW0HjMXCLy8cq****"
self.url="https://xxx.com/xmlrpc.php"
self.which="draft"
1) 워드프레스 아이디
2) 워드프레스 비밀번호
3) 자신의 워드프레스 사이트 주소 ( https://xxx.com ) 이부분만 수정하세요
4) 즉시발행하실거면 publish 입력하시고 임시저장 할려면 draft 입력하세요.
여기까지 파이썬 XMLRPC 를 이용한 이미지 첨부 함수 부분 이였습니다.
#파이썬 #워드프레스 #자동포스팅 #이미지 #첨부 #XMLRPC
2. 파이썬 XMLRPC 를 이용한 이미지 첨부 - 예시
실제로 이미지를 업로드하고 자동포스팅 하는 방법을 예제로 알려드릴께요.
일단 위에 소개한 함수부분을 먼저 입력한후 아래 소스를 입력하시면 됩니다.
wp_auto=WordPressAuto()
title="제목입니다."
category=['카테고리']
file='test.png'
adress=f'''d:/{file}'''
result = wp_auto.wp_upload_image(adress, file)
img_id=result["image_id"]
img_url=result["image_url"]
html=f''' <p>본문내용을 html로 적으세요</p><br />
[caption id="attachment_{img_id}" align="aligncenter" width="500"]
<img class="size-full wp-image-{img_id}" src="{img_url}" alt="{title}" width="500" height="500">
{title}[/caption]
<p> </p><br />
'''
wp_auto.wp_auto_post(title=title,content=html,attachment_id=img_id,category=category)
수정해야 할부분 설명해드릴께요
title="제목입니다."
category=['카테고리']
file='test.png'
adress=f'''d:/{file}'''
1) 포스팅 제목을 입력하세요.
2) 카테고리 이름을 입력하세요.
3) 업로드할 이미지 파일 이름을 입력하세요.
4) 업로드할 이미지의 전체 경로를 지정해주세요.
result = wp_auto.wp_upload_image(adress, file)
img_id=result["image_id"]
img_url=result["image_url"]
위 명령어로 인해 이미지 파일의 아이디와 이미지 파일의 url 이렇게 두가지를 변수로 받았습니다. 이 두가지 변수를 어떻게 활용하는지 아래를 보세요.
html=f''' <p>본문내용을 html로 적으세요</p><br />
[caption id="attachment_{img_id}" align="aligncenter" width="500"]
<img class="size-full wp-image-{img_id}" src="{img_url}" alt="{title}" width="500" height="500">
{title}[/caption]
<p> </p><br />
'''
업로드한 이미지의 아이디와 이미지 주소를 변수로 받아서 그 변수를 활용해서 위와같은 소스를 만든다음 본문내용에 적당한곳에 위치시키면 됩니다.
위 소스중에 이미지와 관련된 html 은
[caption id="attachment_{img_id}" align="aligncenter" width="500"]
<img class="size-full wp-image-{img_id}" src="{img_url}" alt="{title}" width="500" height="500">
{title}[/caption]
이 부분입니다.
wp_auto.wp_auto_post(title=title,content=html,attachment_id=img_id,category=category)
위 소스는 최종적으로 글을 발행하는 핵심 명령어 입니다. attachment_id=img_id 이 부분은 금방 올린 이미지를 특성이미지로 지정한다는 의미입니다. 티스토리로 치면 썸네일 대표이미지로 설정하는것과 같습니다.
저는 자동으로 워드프레스에 포스팅하는것 까지는 알고 있었는데 이미지 첨부도 할수있을까? 왜 이미지 첨부하는 내용은 잘 찾기가 힘들까 궁금했습니다. 하지만 조금만 더 자세히 구글에서 검색해보니 관련 내용이 있었습니다. 저도 공부할겸 내용도 정리할겸 이렇게 포스팅 해보았습니다. 실제로 제 워드프레스에서 이미지 첨부 성공했음을 알려드립니다. 여러분들도 한번 도전해보세요~
임시글로 성공한 인증샷 입니다.
첨부한 이미지 세부정보도 확인해보니 대체텍스트와 캡션 그리고 이미지 크기 까지 제대로 적용된것을 확인할수가 있었습니다.
다음에는 REST API 를 이용해서 파이썬으로 워드프레스 자동포스팅 방법에 대해 포스팅 하도록 해보겠습니다. 다음편도 기대해주세요~
이렇게 해서 XMLRPC 를 이용해서 워드프레스 자동포스팅하는 방법중에서도 이미지를 첨부하는 방법에 대해 알아보았습니다. 다음에는 더욱 유용한 정보로 찾아올것을 약속드리며 이번 포스팅은 여기까지 하도록 하겠습니다. 오늘도 행복한 하루 되세요~ ^^
#파이썬 #워드프레스 #자동포스팅 #이미지 #첨부 #XMLRPC
♥공감은 고래도 춤추게 합니다~ ^^
'파이썬' 카테고리의 다른 글
블로그 썸네일 만들기 프로그램 제작툴 소개 (0) | 2023.07.09 |
---|---|
티스토리 백업 파이썬 코드 (1) | 2023.06.12 |
pixabay 픽사베이 이미지 자동 다운로드 api 파이썬 (0) | 2023.05.17 |
sitemap 사이트맵에서 url 추출하기 - 파이썬 (0) | 2023.04.25 |
워드프레스 rest api 자동포스팅 이미지 첨부 파이썬 (2) | 2023.03.05 |
워드프레스 rest api 자동포스팅 파이썬 (10) | 2022.12.02 |
파이썬 워드프레스 자동 포스팅 소스 (2) | 2022.11.26 |
파이썬 한글 인코딩 에러 해결하기 [Python] (0) | 2022.10.22 |
댓글