使用 Python-xmlrpc 从外部图像 link 设置 Wordpress Post 缩略图
Set Wordpress Post Thumbnail from External image link using Python-xmlrpc
经过大量 Google 我来到这里:我如何设置 post 缩略图使用外部图像 link 而不是附件 ID ?。
这是我能找到的所有内容,但是我无法将其更改为从外部图像设置缩略图 link。
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost
#authenticate
wp_url = "https://blog.com/xmlrpc.php"
wp_username = "My_User_ID_on_WP"
wp_password = "My_PWD_on_WP"
wp = Client(wp_url, wp_username, wp_password)
#post and activate new post
post = WordPressPost()
post.title = '3 Post'
post.content = '<h1>heading 1</h1>Tayloe was here<br><small>here too!</small><p>New para.'
post.post_status = 'draft'
post.thumbnail = 50 # The ID of the image determined in Step 1
post.slug = "123abc"
post.terms_names = {
'post_tag': ['MyTag'],
'category': ['Category']
}
wp.call(NewPost(post))
注意:我不想在我的服务器上保存图像而只使用外部图像
您可以尝试下载图片,将其上传到您的 Wordpress 网站,并使用上面的 ID 作为缩略图参数:
import base64
import requests
# ...
# raw string url
url = r'https://png.pngtree.com/element_our/20190530/ourmid/pngtree-cartoon-google-icon-download-image_1257171.jpg'
# retrieve and store base64 encoded image and mime-type
r = requests.get(url)
mime_type = r.headers['Content-Type']
img_base64 = base64.b64encode(r.content)
upload_image_dict = {
'name': 'some_file_name.ext',
'type': mime_type,
'bits': img_base64,
'overwrite': True
}
resp = wordpress_xmlrpc.methods.media.UploadFile(upload_image_dict)
image_id = resp['id']
# ... [ your code here]
post.thumbnail = image_id
# ...
经过大量 Google 我来到这里:我如何设置 post 缩略图使用外部图像 link 而不是附件 ID ?。
这是我能找到的所有内容,但是我无法将其更改为从外部图像设置缩略图 link。
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost
#authenticate
wp_url = "https://blog.com/xmlrpc.php"
wp_username = "My_User_ID_on_WP"
wp_password = "My_PWD_on_WP"
wp = Client(wp_url, wp_username, wp_password)
#post and activate new post
post = WordPressPost()
post.title = '3 Post'
post.content = '<h1>heading 1</h1>Tayloe was here<br><small>here too!</small><p>New para.'
post.post_status = 'draft'
post.thumbnail = 50 # The ID of the image determined in Step 1
post.slug = "123abc"
post.terms_names = {
'post_tag': ['MyTag'],
'category': ['Category']
}
wp.call(NewPost(post))
注意:我不想在我的服务器上保存图像而只使用外部图像
您可以尝试下载图片,将其上传到您的 Wordpress 网站,并使用上面的 ID 作为缩略图参数:
import base64
import requests
# ...
# raw string url
url = r'https://png.pngtree.com/element_our/20190530/ourmid/pngtree-cartoon-google-icon-download-image_1257171.jpg'
# retrieve and store base64 encoded image and mime-type
r = requests.get(url)
mime_type = r.headers['Content-Type']
img_base64 = base64.b64encode(r.content)
upload_image_dict = {
'name': 'some_file_name.ext',
'type': mime_type,
'bits': img_base64,
'overwrite': True
}
resp = wordpress_xmlrpc.methods.media.UploadFile(upload_image_dict)
image_id = resp['id']
# ... [ your code here]
post.thumbnail = image_id
# ...