Wordpress を使用する Web サイトから別の Web サイトへの移行を行っています。
必要に応じて新しいカスタム タイプを作成し (カスタム投稿タイプのプラグインを使用)、カスタム タイプごとにカテゴリを作成しました。
次に、バージョン 3.4.x 以降でサポートされている新しい Wordpress XML-RPC API を使用して、データベースから投稿を取得し、新しい (テスト用の) Web サイトにリモートでプッシュするスクリプトを Python で書き留めました (この記事から改作)。
現時点では、正しい投稿タイプで新しい投稿を公開できます。しかし、カテゴリを指定すると、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」は、phpMyAdmin を使用して見つけたカテゴリの ID です。
他のアプローチも試しましたが、役に立ちませんでした。カテゴリがなくてもうまく機能します。
助けてくれてありがとう:)