サポート » バグ報告と提案 » xmlrpcでカテゴリ設定時に2桁のカテゴリIDが認識されない

  • xmlrpc.php経由で「mt.setPostCategories」により投稿済みpostのカテゴリを変更/登録しようとすると、カテゴリIDが1桁の場合は正常動作しますが、2桁以上の場合には先頭の数字1桁しか認識されず、誤動作を起こします。
    PEARのXML/RPCを使用しているとして、下記のPHPコードを実行してもカテゴリID「23」を設定できません。

    $client = new XML_RPC_client('/path/to/xmlrpc.php', 'wp_host'); // path, host
    $postId = new XML_RPC_Value(5, 'int'); // wp post id
    $username = new XML_RPC_Value('wp_user', 'string'); // wp user
    $passwd = new XML_RPC_Value('wp_password', 'string'); // wp password
    $cat_item = array(
        new XML_RPC_Value(2, 'int'),
        new XML_RPC_Value(23, 'int')
        );
    $categories = new XML_RPC_Value($cat_item, 'struct');
    $message = new XML_RPC_Message('mt.setPostCategories', array($postId, $username, $passwd, $categories));
    $response = $client->send($message);

    xmlrpc.phpの2327行(foreachループ内)を変更してみたところ、わたしの環境ではうまくいっているようです。
    旧:$catids[] = $cat['categoryId'];
    新:$catids[] = $cat;

    検証及び対応をお願いいたします。`

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    カテゴリーID は “categoryId” をキーとする連想配列の形で渡す仕様になっているはずです。
    http://www.sixapart.com/developers/xmlrpc/movable_type_api/mtsetpostcategories.html

    説明不足で失礼しました。
    連想配列を渡しても、同様の結果となります。
    前回投稿のコードのうち変数「$cat_item」生成部分を下記に置き換えてもカテゴリID「23」は認識されません。

    $cat_item = array(
        'categoryId'=> new XML_RPC_Value(23, 'int'),
        'isPrimary'=> new XML_RPC_Value(0,'int')
        );

    実は最初にこちらを試してうまくいかないので、いろいろ試した結果「categoryId」が評価されていないと気づいたのでした。複数カテゴリの登録も、「categoryId」を使用するとうまくいきません。
    この結果を踏まえての前回の投稿でした。説明不足、重ねてお詫びいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「xmlrpcでカテゴリ設定時に2桁のカテゴリIDが認識されない」には新たに返信することはできません。