Tanupom In-Place Converter for WebP

説明

多くの WebP プラグインは元の JPEG/PNG を残したまま条件付きで WebP を配信するため、すべての画像を 2 重に持ち続けることになります。Tanupom In-Place Converter for WebP はその逆のミニマルな方式で、元ファイルをその場で WebP に置き換え、ライブラリ全体を WebP ファイル 1 セットにします。リライトルールも .htaccess の小細工も、二重のストレージも不要です。

変換にはサーバーの Imagick (ImageMagick) を使うため、重い処理はサーバー側に任せて、プラグイン本体は小さく保たれています。

主な機能

  • アップロード時の自動変換。新規アップロードされた JPEG・PNG・BMP・HEIC・HEIF は、wp_handle_upload フィルターでアップロード時に WebP へ変換し、元ファイルをその場で置き換えます。サーバーが WebP を出力できない場合 (または HEIC/HEIF のデリゲートが無い場合) は、無変換でそのまま通します。
  • 棚卸しスキャン (非破壊)。何かを変更する前に、投稿本文・投稿メタ・オプションのどこで画像 URL が使われているかを一覧化し、変換の影響範囲を事前に把握できます。
  • WebP 一括変換。既存のすべての JPEG・PNG 添付ファイルを、オリジナルと生成済みサブサイズも含めて WebP に変換し、古いファイルを削除します。AJAX の小さなバッチで実行するため共有サーバーの実行時間制限にも耐え、進捗もリアルタイムに表示します。
  • 参照差し替え。変換後、投稿本文とオプション内の古い画像 URL を新しい .webp URL に書き換えます。シリアライズされたオプション (ウィジェット、テーマ設定) はシリアライズを壊さない方式で置換するため、データは破損しません。

変換設定

  • JPEG は非可逆 WebP にエンコードします。品質は設定で変更できます (既定 80)。
  • PNG はアルファ (透過) を保持したままロスレス WebP にエンコードし、ロゴや文字の縁のにじみを防ぎます。
  • EXIF の回転情報は変換前にピクセルへ焼き込みます (スマートフォンの写真が横倒しになりません)。
  • EXIF メタデータは除去します (ファイルが小さくなり、GPS 位置情報の漏えいも防げます)。

この 3 つはいずれもプラグインの設定から変更できます。

WordPress 7.1 and client-side media processing

WordPress 7.1 moves image resizing and sub-size generation into the browser. This plugin works with it: the uploaded original still passes through the wp_handle_upload filter and is converted to WebP as before, and the browser then generates every sub-size in that same WebP format.

This also unlocks HEIC/HEIF on servers whose Imagick build has no HEIC delegate. On 7.1 the browser decodes the HEIC itself, using the operating system’s decoder, so the image reaches the server in a format Imagick can read. An iPhone photo then ends up as WebP rather than JPEG. Browser-side decoding depends on the platform doing the upload: Windows and macOS can do it, Linux currently cannot.

WordPress itself does not convert formats. Without this plugin a JPEG upload stays a JPEG, and a HEIC upload becomes a JPEG, on 7.1 just as on earlier versions.

重要: 変換はその場で行われ、元に戻せません

本プラグインは、アップロード時も一括変換時も、元画像を置き換えて削除します。自動で元に戻す機能はありません。一括変換を実行する前に、メディアライブラリ (とデータベース) をバックアップしてください。

必要要件

  • WebP 対応でビルドされた Imagick PHP 拡張が必要です。サーバーが WebP を出力できない場合は、それを検出して変換を無効化し、通知を表示します。

スクリーンショット

インストール

  1. tanupom-in-place-converter-for-webp フォルダーを /wp-content/plugins/ にアップロードするか、プラグイン画面からインストールします。
  2. WordPress の「プラグイン」画面でプラグインを有効化します。
  3. ツール In-Place WebP」を開きます。
  4. 先にメディアライブラリとデータベースをバックアップしてください。
  5. (任意) 「棚卸し」を実行して、画像 URL の参照箇所を確認します。
  6. 一括変換を開始」をクリックして、完了まで実行します。
  7. 参照差し替えを実行」をクリックして、コンテンツを新しい WebP の URL に更新します。

FAQ

元の JPEG/PNG ファイルは残りますか?

いいえ。本プラグインは意図的に「その場 (in place)」で変換する設計です。元ファイルを WebP に変換して古いファイルを削除し、ライブラリを 1 セットのファイルに保ちます。実行前に必ずバックアップを取ってください。

変換を元に戻せますか?

プラグインからは元に戻せません。元のファイルが必要な場合はバックアップから復元してください。変換前のバックアップが必須なのはこのためです。

サーバーで WebP 変換が利用できないと表示されます。なぜですか?

サーバーの Imagick が WebP を出力できない状態です。ホスティング事業者に ImageMagick/Imagick の WebP 対応を依頼するか、対応済みのサーバーをご利用ください。

アップロード時に自動で変換されますか?

はい、0.2.0 から対応しています。新規アップロードされた JPEG・PNG・BMP・HEIC・HEIF は wp_handle_upload フィルターを通じて WebP としてディスクに書き込まれ、元ファイルを置き換えます。変換設定 (品質、PNG のロスレス、メタデータ除去) も共通です。

サーバーの Imagick が WebP を出力できない場合や、HEIC/HEIF のデリゲートが無い場合は、アップロードは無変換でそのまま通すため、何かが壊れることはありません。

投稿内の画像 URL は壊れませんか?

変換後に「参照差し替えを実行」を実行してください。投稿本文とオプション内の古い画像 URL を新しい .webp URL に書き換えます。シリアライズされたオプションも、シリアライズを壊さない方式で置換します。

HEIC・GIF・BMP や、すでに WebP のファイルはどうなりますか?

2 つの変換経路で対応形式が異なります。

  • Automatic conversion on upload accepts JPEG, PNG, BMP, HEIC, and HEIF. BMP/HEIC/HEIF actually convert only when your server’s Imagick has the corresponding delegate; otherwise the upload is passed through unchanged. On WordPress 7.1 this no longer applies to HEIC/HEIF: the browser decodes them before they reach the server, so they convert even without a HEIC delegate.
  • 既存ライブラリの一括変換は JPEG と PNG のみが対象です。

GIF (多くはアニメーション) と既存の WebP ファイルは常にそのまま残します。その他の MIME タイプは対象外です。

評価

このプラグインにはレビューがありません。

貢献者と開発者

Tanupom In-Place Converter for WebP はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Tanupom In-Place Converter for WebP” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Tanupom In-Place Converter for WebP” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

0.3.1

  • Verified against WordPress 7.1 and its client-side media processing. No code changes were required: uploads still pass through the wp_handle_upload filter, and sub-sizes generated in the browser inherit the converted WebP format.
  • Documented the 7.1 behaviour, including HEIC/HEIF uploads now converting on servers whose Imagick has no HEIC delegate.
  • Removed the bundled Japanese translation files. Translations are delivered as language packs from translate.wordpress.org. The bundled copies were never loaded, because the plugin declares no Domain Path and no longer calls load_plugin_textdomain().

0.3.0

  • プラグイン名を「Tanupom In-Place Converter for WebP」に変更。内部プレフィックス、オプション名、tanupom_ipc_replace_post_types フィルターもあわせて改名。
  • 翻訳が自動で読み込まれるようになり、明示的な load_plugin_textdomain() 呼び出しを削除。

0.2.0

  • wp_handle_upload フィルターによる新規アップロード (JPEG、PNG、BMP、HEIC、HEIF) の自動 WebP 変換を追加。サーバーが WebP を出力できない場合は安全に素通しします。
  • 「参照差し替え」設定セクションを追加。URL 置換時に post_content をスキャンする公開カスタム投稿タイプを追加選択できます。
  • 開発者がスキャン対象の投稿タイプをコードから上書きできる tanupom_ipc_replace_post_types フィルターを追加。
  • 日本語翻訳 (.po / .mo) を追加。
  • 内部整理: コードのドキュメントと一貫性を改善。

0.1.0

  • 初回リリース。
  • 本文・メタ・オプションを横断した、画像 URL 使用箇所の棚卸しスキャン。
  • 既存の JPEG/PNG 添付ファイルとサブサイズの、その場での WebP 一括変換。
  • 投稿本文とオプションの、シリアライズを壊さない参照差し替え。
  • 変換設定を調整可能に (WebP 品質、PNG ロスレス、メタデータ除去)。