我正在尝试开发一个需要将内容发布到 wordpress 博客的 Python 脚本,问题是我需要将图像设置为帖子的缩略图,而我不知道该怎么做。
这是将某些内容(没有缩略图)发布到 WP 的代码示例:
import xmlrpclib
user = 'username'
passwd = 'password'
server = xmlrpclib.ServerProxy('http://vizible.wordpress.com/xmlrpc.php')
blog_id = 0
title = 'test title'
content = 'test content, from python'
blog_content = { 'title' : title, 'description' : content }
categories = [{'categoryId' : 'programming', 'isPrimary' : 1}]
post_id = int(server.metaWeblog.newPost(blog_id, user, passwd, blog_content,0))
server.mt.setPostCategories(post_id, user, passwd, categories) # not work
server.mt.publishPost(post_id, user, passwd)
在网上搜索,我找到了另一个将内容发布到 wordpress 的库,我尝试了这个示例代码,但它没有用。
¿ 你知道另一个 Python 的库来与接受缩略图的 Wordpress 交互吗?
谢谢 :)
编辑:
好的,现在代码将图像上传到我的 wordpress 库,但我没有设置为帖子缩略图。
这是代码:
#!/usr/bin/env python
import xmlrpclib
import urllib2 as urllib
user = 'username'
passwd = 'pass'
server = xmlrpclib.ServerProxy('http://miweb.com/xmlrpc.php')
blog_id = 0
fileimg = urllib.urlopen('image_url')
fileimg = xmlrpclib.Binary(fileimg.read())
data = {'name':'mqdefault.jpg', 'type':'image/jpeg', 'bits':fileimg}
upload = server.wp.uploadFile(blog_id, user, passwd, data)
content = {'post_title':'title', 'post_content':'content', 'post_thumbnail':upload['id']}
post_id = server.wp.newPost(blog_id, user, passwd, content)
server.mt.publishPost(post_id, user, passwd)
问题是,即使 content['post_thumbnail'] 和 upload['id'] 是相同的数字,当我将它发布到我的 Wordpress 博客上时,它也不会显示任何缩略图,但这是上传到图库中的。
最终编辑:我的主题将缩略图显示为元,所以我不得不将它们作为元信息添加到帖子中。这对我来说更好,因为我不需要在我的服务器中托管缩略图。
最终代码:
#!/usr/bin/env python
import xmlrpclib
user = 'username'
passwd = 'pass'
server = xmlrpclib.ServerProxy('http://miweb.com/xmlrpc.php')
blog_id = 0
content = {'post_title':'prova1', 'post_content':'prova text', 'post_status':'published', 'custom_fields': [{'value': 'thumbnail url', 'key': 'thumb'}]}
post_id = server.wp.newPost(blog_id, user, passwd, content)
server.mt.publishPost(post_id, user, passwd)