6

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 です。

他のアプローチも試しましたが、役に立ちませんでした。カテゴリがなくてもうまく機能します。

助けてくれてありがとう:)

4

1 に答える 1

10

XML-RPCWordPressAPIドキュメントには次のように書かれています。

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.

つまり、termsとterms_namesはディレクトリであり、キー名は必要な分類法の名前であり、値は配列リストです。

カテゴリを設定したい場合は、設定する必要があります

‘terms‘:{‘my-category’:[4]} 

また

‘terms_names’:{‘my-category’:["Wordpress"]} 

投稿構造では、「my-category」は分類法の名前です。

からのいくつかの情報:解决Pythonρ布ワードプレスコンテンツ返回抱歉、文章分類型不礼您的分クラス法。错误

于 2013-01-17T05:44:26.220 に答える