Sto eseguendo una migrazione da un sito Web a un altro che utilizza Wordpress.Pubblica un post utilizzando XML-RPC WordPress API e Python con categoria
Ho creato nuovi tipi personalizzati per le mie esigenze (con il plug-in Tipi di post personalizzati) e ho creato categorie per ogni tipo personalizzato.
Ho quindi scritto uno script in Python (adattato da this article), che ottiene i messaggi dal db e li spinge in remoto sul nuovo sito Web (di test), utilizzando la nuova API XML-RPC di Wordpress supportata dalla versione 3.4. X.
Al momento posso pubblicare un nuovo post con il tipo di post corretto. Ma se a specificare una categoria, Wordpress sempre mi restituisce questo errore:
xmlrpclib.Fault: <Fault 401: 'Sorry, one of the given taxonomies is not supported by the post type.'>
sono sicuro che il tipo di post è supportato dalla data tassonomia. Penso di usare una sintassi sbagliata per specificare l'ID della categoria. Ecco il codice:
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
E sul chiamante, per specificare la categoria:
new_post['categories'] = [ { 'term_id': 3, 'taxonomy': 'news-cat' } ]
"news-gatto" è il nome della tassonomia associata al tipo personalizzato "notizia". "term-id" è l'id della categoria, che ho scoperto usando phpMyAdmin.
Ho anche provato altri approcci, ma senza risultato. Senza la categoria funziona bene.
Grazie in anticipo per qualsiasi aiuto :)
La documentazione su questo tema specifico è orribile. Grazie per la condivisione! Questo è super utile! – jperelli
Ciao, ho cercato un modo per impostare il genitore della tassonomia usando wp.newpost e non riesco a trovarlo (ho già postato una domanda senza risposta), quindi se qualcuno potrebbe aiutare lo apprezzerò profondamente. Grazie – JordanBelf