如何通过python wordpress xmlrpc

时间:2019-03-30 11:06:58

标签: python-3.x wordpress xml-rpc

我在我的网站上使用wp职位经理。当我尝试通过xmlrpc添加列表时,一切都很好,但是类别和位置为空。

Screenshot Screenshot

我的代码如下。您能告诉我代码有什么问题吗? 谢谢

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts
from wordpress_xmlrpc.methods import posts
from wordpress_xmlrpc import WordPressTerm
from wordpress_xmlrpc.methods import taxonomies

wp = Client('http://127.0.0.1/15wp/xmlrpc.php', 'admin', '123456')

# now let's create a new product
widget = WordPressPost()
widget.post_type = 'job_listing'
widget.title = 'Widgetlast02'
widget.content = 'This is the widgets description.'
widget.post_status = 'publish'
widget.custom_fields = []
widget.custom_fields.append({
        'job_location': 'Newyork',
        'job_listing_category':  'hotel'
})
widget.id = wp.call(posts.NewPost(widget))

2 个答案:

答案 0 :(得分:0)

这只是看documentation for WordPressPost in wordpress_xmlrpc的猜测:

(强调我的)

  

WordPressPost类

     

代表的帖子,页面或其他已注册的自定义帖子类型   WordPress。

     
      
  • id
  •   
  • 用户
  •   
  • 日期(日期时间)
  •   
  • 修改日期(日期时间)
  •   
  • sl
  •   
  • post_status
  •   
  • 标题
  •   
  • 内容
  •   
  • 摘录
  •   
  • 链接
  •   
  • comment_status
  •   
  • ping_status
  •   
  • 条款(WordPressTerms列表)
  •   
  • terms_names(字典)
  •   
  • custom_fields(字典)
  •   
  • 附件(字典)
  •   
  • 密码
  •   
  • post_format
  •   
  • 缩略图
  •   
  • 粘性
  •   
  • post_type
  •   

它期望custom_fieldsdict-您要创建一个list,然后在该列表中插入一个dict

widget.custom_fields = []
widget.custom_fields.append({
        'job_location': 'Newyork',
        'job_listing_category':  'hotel'
})

这可能会更好地工作:

widget.custom_fields = {
        'job_location': 'Newyork',
        'job_listing_category':  'hotel'
}

答案 1 :(得分:0)

custom_fields属性需要字典列表。

在每个字典中,它期望keyvalue字段的值。

在这里,key是自定义字段的名称,而value是您要为其分配的值。

下面是您的特定示例的代码段。

widget.custom_fields = [
    {
        'key': 'job_location',
        'value':  'Newyork'
    }, 
    {
        'key': 'job_listing_category',
        'value':  'hotel'
    }
]