WP3.9にアップしてからPlugin「Resize images before upload」が動かなくなったので

media-uploadWebサーバ側に「upload_max_filesize」という設定値があって、通常、この容量を超えるファイル(画像も)はアップロードできない。しかし、今どきデジカメの性能も向上していて生の画像をアップすると、余裕でこの容量を超えてしまう。なので、Wordpressに画像をアップロードする前にお客様で画像をリサイズしていただいて、それからアップロードしていただくしかない。これでは、面倒だし、リサイズのソフトが必要だし、操作も習得していただくこととなり、使い勝手としては最悪だ!

安直な対応として「upload_max_filesize」を上げるか、無限に設定する等の方法もあるが、これだと、BOTや悪意のあるアクセス者に対して、PHPのWebアプリに無駄なリソースをあててしまうことになる。もしくは、ディレクティブに管理画面(/wp-adminディレクトリ以下)だけ「upload_max_filesize」を上げてもよいが管理が面倒だし、どこかに不具合やセキュリティ的な穴がでそうで怖い。

そこで便利なプラグインが「Resize images before upload」だった。

Resize images before upload
Resize images before upload

このプラグインはクライアント(PC)側でリサイズして、それをサーバ側にアップロードしてくれます。

筆者も詳しく仕組みをわかっていないんですが、Wordpressのアップロードで使用されているJavaScriptの「Plupload」ライブラリに下記のような機能があって、これにパラメータを渡して機能させてくれるというスグレものです。JPEGにしか対応してないけど、写真といえばJPEGだし、十分な効果が期待できます。

Plupload – Image Resizing on Client Side
http://www.plupload.com/docs/Image-Resizing-on-Client-Side

しかし、残念なことに、Wordpress3.8では「Plupload v1.5.7」だったものが、 WordPress 3.9で「Plupload v2.1.1(?)」にアップされ、パラメータの渡し方が変わったのか、この「Resize images before upload」が機能してくれません。

重い腰を上げて、PluploadまわりのWordpress v3.9.X フィルターフックを調べて、正しくパラメータが渡るように自作プラグインを作ろうとした矢先。すでに「ありました!」。そういうプラグイン。その名も「Client Side Image Resize」しかも、リリースされたのが、2014-5-2 で出来たてホヤホヤです。

client-side-image-resize

さっそく、ダウンロードしてソースを眺めると、基本的にパラメータを渡すだけのことであることから「Resize images before upload」とほぼ同様なロジックでした。安心して使えそうです。このようなプラグインを作っていただきAuthorの「llvasconcellos」さんには感謝です。ありがとうございます。

自作プラグイン作成に入る前に気づいてよかったです。あまりに嬉しかったので、皆様にご紹介します。

しかし、Wordpress 3.9の影響は他にもあり大きかったです。「Client Side Image Resize」のおかげで1つクリアです! そういえば、今日、Wordpress 3.9対応の「AddQuicktag」がようやく出ました! もう1つクリアです!

※なお、このソフトの使用および上記の記事内容に関しては、すべて自己責任でご判断をお願い致します。