Tech Racho エンジニアの「?」を「!」に。
  • 開発

WordPress XML-RPCライブラリ

WordPressはXML-RPC対応で、地味に色々な対応プログラムが出ていますね。

XML-RPCのライブラリを使ってAPIをたたけば、たいていの操作はできますが、
お手軽に使うならライブラリを使いたいです。

PHPのライブラリでは、↓のものがシンプルにまとまっていて使いやすかったです。
http://sourceforge.jp/projects/wpapiclient1/

ただし、WordPress 2.9.2 + PHP5.3 で試したところ、
日付がおかしくなる(1999年11月になってしまう)問題が発生したため、以下のように修正しました。

wordpress/core/Util.class.php
static function createDateTime($timestamp)
{
    $timestamp = date('Ym\TH:i:s', $timestamp); //'c' を 'Ymd\TH:i:s' に置換する
    xmlrpc_set_type($timestamp, 'datetime');
    return $timestamp;
}

date()の結果の違いが原因です。

'c' → 20100510T10:00:00+09:00
'Ymd\TH:i:s' → 20100510T10:00:00

このように、「c」だとタイムゾーンを表す値が入ってしまいます。
date関数

しかし、XML-RPC で dateTime.iso8601 形式を使う場合、タイムゾーンの指定はできない仕様のため、不正な日時と見なされてしまうようです。
Ymd\TH:i:s のように手動で指定することで、正しいフォーマットに指定できますね。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。