查询WordPress xmlrpc远程发布功能支持的方法

overme2个月前 (10-17)网页设计180

问题背景:尝试通过Python采集文章,并自动发布到Wordpress时,想要同步上传封面Cover图片文件并设置特色图片。

问题点:网络上查询到了使用media.upload方法的方法,实践时出现Fault -32601提示该方法不存在。

报警内容:xmlrpc.client.Fault: <Fault -32601:’server error. requested method media.upload does not exist

解决方法:

①  通过网络查询其他的xml-rpc上传图片的方法(尝试了该方法,但找到的多个方法也是不行的)

②  获取XML-RPC所有支持的方法,实现python代码如下:

import xmlrpc.client

wp_url = 'http://localhost/xmlrpc.php'
server = xmlrpc.client.ServerProxy(wp_url)

methods = server.system.listMethods()
print(methods)

通过以上代码,可以知道XML-RPC可以支持的方法有如下:

['system.multicall', 'system.listMethods', 'system.getCapabilities', 'demo.addTwoNumbers', 'demo.sayHello', 'pingback.extensions.getPingbacks', 'pingback.ping', 'mt.publishPost', 'mt.getTrackbackPings', 'mt.supportedTextFilters', 'mt.supportedMethods', 'mt.setPostCategories', 'mt.getPostCategories', 'mt.getRecentPostTitles', 'mt.getCategoryList', 'metaWeblog.getUsersBlogs', 'metaWeblog.deletePost', 'metaWeblog.newMediaObject', 'metaWeblog.getCategories', 'metaWeblog.getRecentPosts', 'metaWeblog.getPost', 'metaWeblog.editPost', 'metaWeblog.newPost', 'blogger.deletePost', 'blogger.editPost', 'blogger.newPost', 'blogger.getRecentPosts', 'blogger.getPost', 'blogger.getUserInfo', 'blogger.getUsersBlogs', 'wp.restoreRevision', 'wp.getRevisions', 'wp.getPostTypes', 'wp.getPostType', 'wp.getPostFormats', 'wp.getMediaLibrary', 'wp.getMediaItem', 'wp.getCommentStatusList', 'wp.newComment', 'wp.editComment', 'wp.deleteComment', 'wp.getComments', 'wp.getComment', 'wp.setOptions', 'wp.getOptions', 'wp.getPageTemplates', 'wp.getPageStatusList', 'wp.getPostStatusList', 'wp.getCommentCount', 'wp.deleteFile', 'wp.uploadFile', 'wp.suggestCategories', 'wp.deleteCategory', 'wp.newCategory', 'wp.getTags', 'wp.getCategories', 'wp.getAuthors', 'wp.getPageList', 'wp.editPage', 'wp.deletePage', 'wp.newPage', 'wp.getPages', 'wp.getPage', 'wp.editProfile', 'wp.getProfile', 'wp.getUsers', 'wp.getUser', 'wp.getTaxonomies', 'wp.getTaxonomy', 'wp.getTerms', 'wp.getTerm', 'wp.deleteTerm', 'wp.editTerm', 'wp.newTerm', 'wp.getPosts', 'wp.getPost', 'wp.deletePost', 'wp.editPost', 'wp.newPost', 'wp.getUsersBlogs']

通过简单的字面分析,就知道想要上传图片等媒体资源,需要使用的方法是metaWeblog.newMediaObject方法。最终使用该方法,实现了图片URL资源的自动上传。

# 上传图片并获得图片id
media_id = wp_client.metaWeblog.newMediaObject(post['blog_id'], post['username'], post['password'], params)


相关文章


		常用Web服务器介绍WordPress服务器

常用Web服务器介绍WordPress服务器

WordPress是使用PHP语言开发的开源发布平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的博客、网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。作为...

Wordpress如何开启用户注册功能

Wordpress如何开启用户注册功能

登录到WordPress管理员后台:首先在浏览器中输入你的网站域名,此处用的phpstudy创建的localhost地址。Wordpress的默认管理员登录地址是http://localhost/wp...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。