私はpost_dateをXML-RPCで設定しようとしていますが、XMLが正しくフォーマットされていないというエラーを出し続けます。コードは次のようになります。
$post = get_post( $post_id );
$response = $client->query(
'wp.editPost',
array(
0,
$user,
$pw,
array(
'post_date' => $post->post_date
)
)
);
私はwp.newPost
で同じ問題にぶつかっています。私は日付がISO 8601にフォーマットされるべきであることを知っています、しかし、私はちょうどそれが正しくフォーマットされることに運がありません。
ここにいくつかの問題があります。まず第一に、wp.editPost
はcontent structの前に4番目のパラメータを取ります - >編集しようとしている投稿のID(整数であるべきです)。
次に、post_date
の文字列を渡しているので、クライアントはこれをサーバーに送信する前に自動的に<string>
タグに変換します。残念ながら、サーバーは<dateTime.iso8601>
タグを期待しています。
これを修正するには、文字列dateを解析し、代わりにIXR_Date
クラスのインスタンスを渡します。クライアントはそれを適切に解析し、サーバーは適切に反応します。私は自分のサーバーで次のシナリオをテストしました。
$date = new IXR_Date( strtotime( $post->post_date ) ); // Parse the date to an IXR_Date object.
$response = $client->query(
'wp.editPost',
array(
0,
$user,
$pwd,
$post_id,
array(
'post_date' => $date
)
)
);