Yuriko.Net 個別記事

WordPress 2.5のプラグイン自動アップデートへの対応をどうするか
拙作プラグインのうち、Ktai Style, Lightweight Google Maps は WordPress 2.5 での動作を確認ずみですが、他のものはまだです。実は、JSeries Notifier は、動作するものの、更新通知表示が英語のままであるという問題があります。WordPress 本体のローカライズ文字列が変更になったためです。対応するには、WordPress のバージョンを判別して、それぞれに合わせた文字列を使えば OK です。
しかし、実際にはそれでは十分ではありません。なぜなら、WordPress 2.5 の更新通知には「自動アップデートする」というリンクが含まれるからです。ところが、JSeries のプラグインがすべて自動アップデートに対応しているかというと、必ずしもそうではありません。残念なことに、Ktai Style はそのファイル構成上、対応していません。
WordPress 2.5 の自動アップデートは、一時フォルダにプラグインの展開を試みて、成功すれば稼働中のものと入れ替える仕組みです。ところが、Ktai Style は、プラグインの内部にユーザーの自作テーマを入れられるので、この手順でアップデートされると、その自作テーマが消えてしまいます。(JSeries ではありませんが) Mobile Eye+ も、設定ファイルをプラグインフォルダーの内部に生成するので、自動アップデートすると設定ファイルがなくなります。
自動アップデートに対応するには、ユーザーの自作テーマを wp-content/plugins/ktai_style/themes/ ディレクトリーの外に保存させるしかありません。wp-content/ktai-themes/ ないしは wp-content/themes/ktai/ というディレクトリーを作ってもらって、そこに保存するとかの手を検討してみますが、分かりやすさが落ちますよね……。
プラグインの自動アップデートが、既存のものに上書きする仕組みならば自作テーマは消えませんが、上書きだと、余分なファイルが残ったり、展開に失敗したときの復旧が困難という問題があるので、そういう仕組みに変わる可能性は低いでしょう。
余談ですが、Yuriko.Net を収容しているサーバーは FTP が使えない (SSH/SCP/SFTP のみ) ため、自動アップデートは使えません。自動アップデートが FTP のみというのは、2008年の設計ちゃうやろ〜〜と思いますが、SFTP に対応するとなると大変そうです。対応してほしけりゃ自分でパッチを書いて送るしか
[追記] そもそも、Ktai Style をはじめ、わたしがリリースしたプラグインはすべて tar.gz もしくは tar.bz2 型式なので、自動アップグレードに対応していません。アーカイブの展開は unzip_file() しか行なってないので、zip 型式以外はそこでエラーになりそうです。でも、zip 型式は好みじゃないし、Mac OS X からクリーンな型式で吐き出すのは面倒なんですよね (普通に操作すると __MACOSX__ というフォルダーができてしまう)。