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 のように手動で指定することで、正しいフォーマットに指定できますね。

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(16区分17回 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、Ruby Programmer Gold、AWSソリューションアーキテクト(アソシエイト)、日商簿記2級、漢検準1級などを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ

BPSアドベントカレンダー