EWWW Image Optimizerは有名なWordPress用の画像圧縮プラグインである。
画像データをPCで加工する場合にはGIMPあたりを使えば良いのは知っているのだが、どうにも高性能すぎて自分には合わない。
もうWindows3.1の頃からペイント(たしか当時はペイントブラシだったが)をメインに使用している。そろそろ30年になるだろうか。。。
高速に起動するし、ペイント以上の機能を使いこなせない。自分に取っては十分な機能だ。
基本的に自分が画像データを扱う場合には、写真はJPEG、色数が少ない物はPNGで保存するのだがペイントは両方とも対応している。
ただWEB上の最新のデータフォーマットとなるとwebpだ。基本的にこの両者より圧縮率は高いためデータ容量は小さい。その代わり古いブラウザでは表示できないし、ペイントもこの形式では保存できない。ただ、ここ10年のPCやスマホならばwebpに対応していない端末は無いだろう。
使用端末に最適な画像サイズのデータを提供して、さらに自動的にwebpに画像変換も行ってくれる便利なプラグインがEWWW Image Optimizerである。その分高速に配信してくれるのだ。しかも古いブラウザには自動的に元のJPEGとPNGで表示してくれる優れものである。
Apacheのエラーログを修正するためにプラグインを独自に修正してみているが、EWWW Image Optimizerについては特段問題も感じておらず、SQLiteでも問題なく動作している物と思い込んでいた。残念ながら他よりエラーが少ないだけで、しっかり毎日エラーを吐き続けていたようである。
結論から書くと、こいつもデータベースのテーブル追加が必要だ。SQLite用の互換テーブル作成用の「CREATE TABLE」を紹介する。
CREATE TABLE wp_ewwwio_images (
id INTEGER PRIMARY KEY AUTOINCREMENT,
attachment_id INTEGER,
gallery varchar(10),
resize varchar(75),
path text NOT NULL,
converted text NOT NULL,
image_size INTEGER,
orig_size INTEGER,
backup varchar(100),
retrieve varchar(100),
level INTEGER,
resized_width INTEGER,
resized_height INTEGER,
resize_error INTEGER,
webp_size INTEGER,
webp_error INTEGER,
pending INTEGER NOT NULL DEFAULT 0,
updates INTEGER,
updated timestamp DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')),
trace blob
);
CREATE INDEX path on wp_ewwwio_images (
path
);
CREATE INDEX attachment_info on wp_ewwwio_images (
gallery,
attachment_id
);
エラーの内容は非常に簡単だ。もの凄く簡単なSQLの実行に失敗している。
SELECT * FROM wp_ewwwio_images WHERE path = ‘ABSPATHwp-content/uploads/hogehoge.jpg’
EWWW Image Optimizerは2つのテーブルを必要としていた
wp_ewwwio_images
wp_ewwwio_queue
このうち、「wp_ewwwio_images」が全く作成されていなかった。そりゃ簡単なSQLも失敗する訳である。
common.phpにある「CREATE TABLE」を参考に作ったのが上記である。
はっきり言って、このテーブルが無いのに正しく動いている?のが不思議で仕方が無かった。webpに変換されなかったり、ブラウザの画像がwebpでなければ気がついたであろう。
テーブルを作った後、テーブルwp_ewwwio_imagesにデータを正しく取り込むため、一括最適化で取り込もうとしたがうまく働かなかった。最適化するものが無いとのことで、もしかしたらwebpに変換された画像データを手動で削除する必要があるかもしれない。
こちらについては原因を調べるのが面倒だったので、一つずつ画像を選択して「今すぐ最適化」をすると全データについて正しく互換テーブルに取り込まれた。ついでに「wp_ewwwio_images」の機能を調べて色々動かしてみたが、特に不具合はでなかった。
こちらのプラグインについても、一度テーブルを作成してしまえばデータベースの変更が無い限り更新の必要は無いだろう。
これで「EWWW Image Optimizer」に関するエラーログは無くなった。
毎日3MBあったエラーログは200KB程度まで少なくなった。うーん、まだまだ調査が必要かもしれない。
コメント