2010-03-10 1 views
1

Я хочу добавить настраиваемое поле 'enclosure' к существующему сообщению Wordpress, используя Python & XML-RPC.Использование Python & XML-RPC для добавления настраиваемого поля в сообщение Wordpress?

Мой код выглядит следующим образом:

def add_enclosure(server, post_id, enclosure): 
    post_data = server.metaWeblog.getPost(post_id, username, password) 
    custom_fields = post_data['custom_fields'] 
    new_id = max([int(field['id']) for field in custom_fields]) + 1 

    custom_fields.append({'id': "%s" % (new_id), 'key': 'enclosure', \ 
          'value': "%s\n%s\n%s" % \ 
          (enclosure['url'], enclosure['length'], enclosure['type'])}) 
    server.metaWeblog.editPost(post_id, username, password, \ 
           {'custom_fields': custom_fields}) 

Но я получаю следующее сообщение об ошибке:

xmlrpclib.Fault: <Fault 500: 'Sorry, your entry could not be edited. Something wrong happened.'> 

Что я делаю неправильно?

ответ

0

Пользовательские поля представляют собой набор пар ключ/значение, которые выглядят как:

"custom_fields" = (
     {key = city; value = Sacramento; }, 
     {key = city; value = Sandy; } 
    ) 

Попробуйте выборки почтовых данных с metaWeblog.getPost на пост, который уже имеет собственные поля, и вы увидите, что они похожи.