我正在从一个网站迁移到另一个使用 Wordpress 的网站。
我根据需要创建了新的自定义类型(使用插件自定义帖子类型),并为每个自定义类型创建了类别。
然后我用 Python 编写了一个脚本(改编自这篇文章),它使用从 3.4.x 版本开始支持的新 Wordpress XML-RPC API 从数据库中获取帖子并将它们远程推送到新的(测试)网站上。
目前,我可以发布具有正确帖子类型的新帖子。但是如果我指定一个类别,wordpress 总是会返回这个错误:
xmlrpclib.Fault: <Fault 401: 'Sorry, one of the given taxonomies is not supported by the post type.'>
我确定给定分类法支持帖子类型。我认为我使用错误的语法来指定类别 ID。这是代码:
import datetime, xmlrpclib, MySQLdb
def post_remotely(post_data):
wp_url = "[my wordpress blog url]"
wp_username = "[myuser]"
wp_password = "[mypasswd]"
wp_blogid = "0"
status = 'publish'
server = xmlrpclib.ServerProxy(wp_url)
data = { 'post_title': post_data['title'], 'post_content': post_data['content'],
'post_date': post_data['data'], 'post_type': post_data['post_type'], 'terms': post_data['categories'],
'post_status': status }
post_id = server.wp.newPost(wp_blogid, wp_username, wp_password, data)
return post_id
在调用者上,指定类别:
new_post['categories'] = [ { 'term_id': 3, 'taxonomy': 'news-cat' } ]
“news-cat”是与自定义类型“news”相关联的分类名称。“term-id”是类别的 id,我使用 phpMyAdmin 发现的。
我也尝试过其他方法,但无济于事。没有类别,它工作得很好。
在此先感谢您的帮助:)