如何使用 xmlrpclib Python 库向 WordPress 帖子添加缩略图?

2024-03-11

我正在尝试开发一个Python脚本,它需要将内容发布到wordpress博客,问题是我需要将图像设置为帖子的缩略图,但我不知道如何做到这一点。

这是将某些内容(没有缩略图)发布到 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,并且我尝试了这个示例代码 http://python-wordpress-xmlrpc.readthedocs.org/en/latest/examples/media.html#,但没有成功。

¿你知道另一个Python库可以与接受缩略图的Wordpress进行交互吗?

谢谢 :)

EDIT:

好的,现在代码将图像上传到我的 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['postthumbnail'] 和 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)

您可以使用 xmlrpc 接口中的 wp.* 调用来访问 WP 特定功能,该功能比元博客功能更多。

首先你会打电话server.wp.uploadFile or server.wp.getMediaLibrary上传缩略图或查找现有缩略图并获取其 ID。然后在content["post_thumbnail"]参数为server.wp.newPost.

WP API 有docs http://codex.wordpress.org/XML-RPC_WordPress_API对于这一切。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 xmlrpclib Python 库向 WordPress 帖子添加缩略图? 的相关文章

随机推荐