jyoshida
メンバー
4 years前の投稿 #
xmlrpc経由でファイルをアップロードしたときにwp_handle_uploadフックを使ってmime-typeを変更しようとしても、上手いこと行きません。
xmlrpc の場合は、xmlrpc.phpのwp_xmlrpc_server::mw_newMediaObject()で独自処理をしているようで、そこでは、
1. ファイルのパスを示すであろう $file['file'] の値がbasename()されたファイル名が渡されてる。そのため、フック関数でファイルにアクセスできない。
2. wp_insert_attachment()の後にapply_filters()を読んでいるのでフック関数で値を変更してもデータベースには反映されない。
Windows Live WriterがJPEGファイルをアップロードするときにmetaWeblog.newMediaObjectのtypeをapplication/octet-streamで渡して来ます。2.5RC1のメディアライブラリで見ると、画像のサムネイルが表示されないので微妙に気持ち悪かったので調べてみました。
2.2.3MEのソースも合わせて確認したのですが2.5RC1も2.2.3MEもxmlrpc.phpのwp_xmlrpc_server::mw_newMediaObject()同じでした。
バグなのか仕様なのか分かりませんが、wp_handle_uploadフックの意味がxmlrpc経由場合だけ無くなってしまう気がします。ダッシュボード経由だとwp_handle_uploadのフックはちゃんと動きます。
確認した環境: 2.2.3ME/2.5RC1 (フォームのバージョン欄では英字が使えないらしいので追記)
jyoshida
メンバー
4 years前の投稿 #
jyoshida
メンバー
4 years前の投稿 #
tarcを見てみたら、1.に対しては一度修正された模様( http://trac.wordpress.org/ticket/3395 )。
ただし、現在はまた修正前に戻っている。
2.関しては言及はされていなかったので新しくチケットを発行しました。( http://trac.wordpress.org/ticket/6559 )
jyoshida
メンバー
4 years前の投稿 #
発行したチケットにマイルストーン2.6が設定されてました。
jyoshida
メンバー
3 years前の投稿 #
チケットのマイルストーンが2.9に設定されていました。
XML-RPCの改良と合わせて対応するのかもしれません。
バージョンアップの度にパッチをあて回るのにも疲れました。
消極的な対応ですが、Wordpress自体を使うのをやめることで解決ということします。
チケットのマイルストーンが2.9に設定されていました。
XML-RPCの改良と合わせて対応するのかもしれません。
XML-RPC の改良は 2.9 に延期されたんでしたっけ??
消極的な対応ですが、Wordpress自体を使うのをやめることで解決ということします。
WordPress の XML-RPC まわりは、実装がいい加減な気がするので、XML-RPC をメインに使うなら WordPress を避ける、というのは仕方ないかもしれません……。
jyoshida
メンバー
3 years前の投稿 #
XML-RPC の改良は 2.9 に延期されたんでしたっけ??
根拠はありません。
2.9の開発が進むことでさらにこのチケットのマイルストーンは先に延ばされるかもしれません。
逆に、XML-RPCの改良により2.9より前に解決されるかもしれません。
ただ、積極的にこのチケットに対する修正は行われないと思います。