fra*_*zon 6 python wordpress xml-rpc categories
我正在从一个网站迁移到另一个使用Wordpress的网站.
我根据自己的需要创建了新的自定义类型(使用插件自定义帖子类型),并为每种自定义类型创建了类别.
然后我在Python中写下了一个脚本(改编自本文),它使用自3.4.x版以来支持的新的Wordpress XML-RPC API,从db获取帖子并在新的(测试)网站上远程推送它们.
目前我可以使用正确的帖子类型发布新帖子.但是如果我指定一个类别,wordpress总是会给我这个错误:
xmlrpclib.Fault: <Fault 401: 'Sorry, one of the given taxonomies is not supported by the post type.'>
Run Code Online (Sandbox Code Playgroud)
我确信给定的分类法支持帖子类型.我想我使用了错误的语法来指定类别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
Run Code Online (Sandbox Code Playgroud)
在调用者上,指定类别:
new_post['categories'] = [ { 'term_id': 3, 'taxonomy': 'news-cat' } ]
Run Code Online (Sandbox Code Playgroud)
"news-cat"是与自定义类型"news"关联的分类法的名称."term-id"是我使用phpMyAdmin发现的类别的id.
我也尝试过其他方法,但无济于事.如果没有该类别,它可以很好地工作
在此先感谢任何帮助:)
小智 10
struct terms: Taxonomy names as keys, array of term IDs as values.
struct terms_names: Taxonomy names as keys, array of term names as values.
Run Code Online (Sandbox Code Playgroud)
这意味着terms和terms_names是目录,键名是您想要的分类名称,值是数组列表.
如果要设置类别,则应进行设置
‘terms‘:{‘my-category’:[4]}
Run Code Online (Sandbox Code Playgroud)
要么
‘terms_names’:{‘my-category’:["Wordpress"]}
Run Code Online (Sandbox Code Playgroud)
在帖子结构中,"my-category"是您的分类法的名称.
一些信息来自:解决Python发布wordpress内容返回抱歉,文章类型不支持您的分类法.
| 归档时间: |
|
| 查看次数: |
6429 次 |
| 最近记录: |