WordPress記事内に埋め込まれた画像というのはただIMG要素のHREF属性でURLのパスが指定されているだけだから、mixiに日記を投稿する際には一度バイナリファイルを取得するかWordPress内部のアップロード済みファイルのディレクトリパスを取得するか、どちらかの方法で実バイナリファイルを指定しなければいけないようだ。
今回はPEARのHTTP_Requestクラスを使っているのでaddFileメソッドで画像を送信する。本メソッドで引数に指定できるのはバイナリファイルのパスで、バイナリのデータそのものを渡す方法は提供されてないようだ。URLで画像を渡すこともできないらしい。なのでWordPressに実際にアップされたファイルのパスを取得してaddFileすることにする。
WordPressの関数で使えそうな関数はこれ。
wp_upload_dir - アップロードディレクトリ(パス名)を取得する
メディア設定オプションによってアップロード先は変わってしまうようだけど、とりあえずカレントのパスが取得できれば使用上は問題なさそう。
for( $i=1; $i <= count($images); $i++ ) {
$paths = preg_split('/\//', $images[$i-1]);
$filename = $paths[count($paths) - 1];
$upload_dir = wp_upload_dir();
$path = $upload_dir['path'] . '/'. $filename;
$photo = "photo" . $i;
$request->addFile($photo, $path, "image/jpeg");
}
こんな感じでmixi Diary APIに指定されたファイル名でaddFileしてあげると、うまくいくんじゃないだろうか。
試しに画像をぺたり。

サッカー場に行ったらGoogleストリートビューを撮影していた。こういう機材で撮ってたのか。
WordPressプラグインの修正その2 【WordPressからMixiへの連携】【そのひぐらし】
今回はPEARのHTTP_Requestクラスを使っているのでaddFileメソッドで画像を送信する。本メソッドで引数に指定できるのはバイナリファイルのパスで、バイナリのデータそのものを渡す方法は提供されてないようだ。URLで画像を渡すこともできないらしい。なのでWordPressに実際にアップされたファイルのパスを取得してaddFileすることにする。
WordPressの関数で使えそうな関数はこれ。
wp_upload_dir - アップロードディレクトリ(パス名)を取得する
メディア設定オプションによってアップロード先は変わってしまうようだけど、とりあえずカレントのパスが取得できれば使用上は問題なさそう。
for( $i=1; $i <= count($images); $i++ ) {
$paths = preg_split('/\//', $images[$i-1]);
$filename = $paths[count($paths) - 1];
$upload_dir = wp_upload_dir();
$path = $upload_dir['path'] . '/'. $filename;
$photo = "photo" . $i;
$request->addFile($photo, $path, "image/jpeg");
}
こんな感じでmixi Diary APIに指定されたファイル名でaddFileしてあげると、うまくいくんじゃないだろうか。
試しに画像をぺたり。

サッカー場に行ったらGoogleストリートビューを撮影していた。こういう機材で撮ってたのか。
WordPressプラグインの修正その2 【WordPressからMixiへの連携】【そのひぐらし】


