WordPress.org

Plugin Directory

Converter for Media – 圖片最佳化 | 轉換 WebP 及 AVIF

Converter for Media – 圖片最佳化 | 轉換 WebP 及 AVIF

外掛說明

使用我們簡易的圖片最佳化工具,透過提供 WebP 與 AVIF 圖片來加快網站速度。 將標準 JPEG、PNG 和 GIF 格式的檔案替換為 WebP 與 AVIF 格式後,您可以在不損失品質的情況下,節省超過一半的頁面資料量。

安裝此外掛程式後,您只需按一下即可將整個媒體庫最佳化,無需進一步操作。圖片最佳化完成後,每位訪客都會自動收到檔案大小大幅縮減的新圖片。

截至目前,超過 95% 的使用者使用支援 WebP 格式的瀏覽器。網站載入時間在很大程度上取決於網站大小和圖片最佳化程度。使用我們的 WebP Converter,現在只要幾秒鐘,就能輕鬆完成這項工作並加快網站速度!

這對您的使用者和伺服器都有好處:使用者不必下載那麼多資料,而伺服器的負載也會降低。請記住,網站最佳化程度提升也會影響您的 Google 排名。圖片最佳化非常重要。

AVIF 支援

現在,您可以在PRO 版本中將 AVIF 設為圖片的輸出格式。AVIF 是一種新的延伸格式,也是 WebP 的後繼格式。轉換為 AVIF 格式的圖片,其檔案大小約比僅轉換為 WebP 格式的圖片少 50%,同時維持更佳的圖片品質。

AVIF 獲超過 90% 的瀏覽器支援,您可以放心使用。此外,如果有訪客使用較舊的瀏覽器,我們的外掛會自動改用 WebP,因此每位使用者都能順暢且快速地取得高品質的圖片。

在我們的 PRO 版本中解鎖 AVIF 的魔力 — 立即升級,享有無與倫比的圖片效能。

外掛運作方式

當瀏覽器嘗試載入圖片檔案時,外掛程式會檢查瀏覽器是否支援 AVIF 格式(前提是已在外掛程式設定中啟用)。如果支援,瀏覽器會收到原始圖片的 AVIF 格式等效版本。如果不支援 AVIF,但支援 WebP 格式,瀏覽器會收到原始圖片的 WebP 格式等效版本。如果瀏覽器不支援 WebP 或 AVIF,則會載入原始圖片。這表示所有瀏覽器都能獲得完整支援。

您可以在此處找到如何測試外掛是否正常運作的指南。

其他資訊

  • 如果您剛安裝外掛程式,只要按一下即可最佳化圖片。產生 AVIF 和 WebP 後,圖片大小會變小!
  • 新增至媒體庫的新圖片會自動轉換。
  • 我們的圖片最佳化工具不會以任何方式修改您的原始圖片。這表示您與檔案的安全性獲得保障。 轉換為 AVIF 和 WebP 格式的檔案會儲存在獨立目錄:/wp-content/uploads-webpc/。
  • 您不會失去任何東西 – 若您必須移除外掛程式,它也會在移除自身後一併移除所有內容。完全不會留下任何痕跡,因此您可以輕鬆檢查。

轉換 WebP 和 AVIF——這就是圖片最佳化的未來!

立即最佳化圖片,讓您的網站更上一層樓!安裝外掛,透過圖片最佳化讓網站載入更快。您和您的使用者一定會喜歡。

同時將圖片轉換為 WebP 和 AVIF,可確保圖片檔案大小最低,並與所有瀏覽器相容。使用AVIF 格式後,相較於 WebP,您可以進一步減少圖片檔案大小。

支援其他目錄

您不只能轉換 WebP 和 AVIF,還能最佳化來自 /uploads 目錄以及 /plugins 和 /themes 目錄的圖片。這可讓網站與 WebP 和 AVIF 格式完整整合!

外掛程式開發

如果您喜歡我們的外掛程式,請在 WordPress.org 留下★★★★★的評價——這真的會讓我們很開心,也能幫助其他人發現這個外掛程式!

也請閱讀下方的常見問題。感謝您一路相伴!

螢幕擷圖

安裝方式

  1. 將外掛程式檔案上傳至 /wp-content/plugins/webp-converter-for-media 目錄,或直接透過 WordPress 外掛程式畫面安裝此外掛程式。
  2. 透過 WordPress 管理面板中的 外掛 畫面啟用外掛。
  3. 使用 Settings -> Settings -> Converter for Media 畫面設定外掛程式。
  4. 按一下 Start Bulk Optimization 按鈕,然後等待。
  5. 使用這份教學檢查一切是否正常運作。

就這樣!您的網站載入速度已經更快了!

常見問題集

如何回報安全性錯誤?

您可以透過 Patchstack 弱點揭露計畫回報安全性錯誤。Patchstack 團隊會協助驗證、分類及處理任何安全性弱點。

回報安全性漏洞

如何取得技術支援?(尋求協助前)

新增討論串前,請先閱讀此常見問題中的所有其他問題,以及支援論壇中的其他討論串。或許有人遇過類似問題,而且問題已經獲得解決。

新增討論串時,請依照以下步驟操作,並逐一回覆每一項問題或要求:

1. 外掛設定頁面上是否有任何錯誤?如果您有任何錯誤,請閱讀這個討論串。

2. 您網站的 URL。

3. 外掛設定畫面中「說明中心」分頁的螢幕擷取畫面 — 請擷取整個頁面。

4. 請執行 FAQ 中「如何確認外掛程式是否正常運作?」所述的測試。請傳送包含測試結果的 DevTools 螢幕擷取畫面。

請記得在新增討論串時回答所有問題。這樣更容易,也能加快問題的解決速度。

Nginx 設定

如果您使用不支援 .htaccess 規則的 Nginx 伺服器,則需要額外的 Nginx 伺服器組態,外掛才能正常運作。

如需更多資訊,請閱讀這篇教學課程。

Nginx Proxy 的設定

如果您使用支援 .htaccess 規則的 Nginx 伺服器,但外掛程式設定頁面仍出現伺服器設定錯誤,則需要額外設定 Nginx 伺服器,外掛程式才能正常運作。

如需更多資訊,請閱讀 這份教學課程。

外掛程式設定畫面發生錯誤?

如果您在外掛程式設定畫面上看到錯誤,請先仔細閱讀錯誤內容。這些錯誤會在伺服器或網站設定發生問題時顯示。

這些訊息旨在減少重複的支援要求,節省您和我們的時間。請閱讀 這個討論串以取得更多資訊。

轉換時發生錯誤?

轉換時可能會發生幾種錯誤。首先,請仔細閱讀錯誤內容。在大多數情況下,您可以自行解決這個問題。請嘗試自行處理,或聯絡伺服器管理員。

如果您收到錯誤:File "%s" does not exist. Please check file path.,表示 PHP 中的 file_exists() 函式使用錯誤訊息中提供的檔案路徑時,回傳了 false。請檢查此路徑,並確認路徑正確。

如果您遇到錯誤:檔案 "%s" 無法讀取。請檢查檔案權限。,這表示 PHP 中的 is_readable() 函式使用錯誤訊息中提供的檔案路徑時回傳了 false。請檢查檔案及其所在目錄的權限。

如果您收到錯誤:"%s" is not a valid image file.,這表示檔案已損毀。請將檔案下載至磁碟,使用任何繪圖程式重新儲存,然後再次將檔案新增至頁面。如果錯誤只套用至個別圖片,您可以忽略此錯誤—只會載入原始圖片,不會載入 WebP 圖片。

如果您收到錯誤:Image "%s" converted to .webp is larger than original and converted .webp file has been deleted.,表示原始圖片的檔案大小小於 WebP。這會在圖片先前已經壓縮過時發生。請在外掛設定中停用 「輸出格式大於原始檔案時自動移除檔案」 選項,以強制一律使用 WebP。

外掛有哪些需求?

幾乎所有主機服務都符合這些需求。您必須使用至少 7.0 版的 PHP,並安裝 GD 或 Imagick 擴充功能。擴充功能必須支援 WebP format。 如果您收到 GD 或 Imagick 程式庫未安裝的錯誤,但實際上已安裝,則很可能是設定不正確且不支援 WebP。

這些是必要的原生 PHP 擴充功能,WordPress 等軟體會使用它們來產生縮圖。您的伺服器也必須啟用 mod_mime、mod_rewrite 和 mod_expires 模組。

正確伺服器組態的範例可以在此處找到。外掛程式設定畫面的說明中心分頁中,可以找到目前組態的連結。

請注意標示為紅色的項目。 如果您的情況中沒有顯示標示為紅色的值,表示您的伺服器不符合技術需求。請注意 GD 程式庫的 WebP Support 值,以及 Imagick 程式庫支援擴充功能清單中的 WEBP。

如果您的伺服器不符合技術需求,請聯絡您的伺服器管理員。我們無法協助您。請勿就此事聯絡我們,因為這是伺服器設定問題,而非外掛程式問題。

此外,REST API 必須啟用且能在沒有其他限制的情況下正常運作。如果遇到問題,請聯絡建立您網站的開發人員。他應該能輕鬆找出 REST API 無法正常運作的問題。

如何確認外掛是否正常運作?

如要進一步了解外掛程式的運作方式,請參閱我們的手冊。

如何變更 uploads 的路徑?

您可以使用以下類型的篩選器變更預設路徑。這是提供進階使用者使用的解決方案。如果您不是進階使用者,請略過此問題。

WordPress 根安裝目錄的路徑(預設為 ABSPATH):

add_filter( 'webpc_site_root', function( $path ) {
    return ABSPATH;
} );

目錄的路徑(相對於根目錄):

add_filter( 'webpc_dir_name', function( $path, $directory ) {
    switch ( $directory ) {
        case 'uploads':
            return 'wp-content/uploads';
        case 'webp':
            return 'wp-content/uploads-webpc';
        case 'plugins':
            return 'wp-content/plugins';
        case 'themes':
            return 'wp-content/themes';
    }
    return $path;
}, 10, 2 );

請注意,/uploads-webpc 目錄必須與 /uploads、/plugins 和 /themes 目錄位於相同的巢狀層級。

/wp-content/ 目錄 URL 中的前置詞或等效項目 (用於 .htaccess):

add_filter( 'webpc_htaccess_rewrite_path', function( $prefix ) {
    return '/';
} );

以下自訂 WordPress 結構範例:

...
├── web
    ...
    ├── app
    │   ├── mu-plugins
    │   ├── plugins
    │   ├── themes
    │   └── uploads
    ├── wp-config.php
    ...

使用以下篩選器:

add_filter( 'webpc_site_root', function( $path ) {
    return 'C:/WAMP/www/project/web'; // your valid path to root
} );
add_filter( 'webpc_htaccess_rewrite_path', function( $prefix ) {
    return '/';
} );
add_filter( 'webpc_dir_name', function( $path, $directory ) {
    switch ( $directory ) {
        case 'uploads':
            return 'app/uploads';
        case 'webp':
            return 'app/uploads-webpc';
        case 'plugins':
            return 'app/plugins';
        case 'themes':
            return 'app/themes';
    }
    return $path;
}, 10, 2 );

設定篩選條件後,前往管理面板中的 Settings -> Converter for Media,然後按一下 Save Changes 按鈕。具有適當規則的 .htaccess 檔案應建立在 /uploads 與 /uploads-webpc 目錄中。

如何排除不進行轉換的路徑?

若要排除選取的目錄,請在外掛程式設定中的進階設定分頁之 Excluded directories 欄位中提供這些目錄。

在此欄位中,您可以輸入目錄名稱或路徑。以下是範例:
– 2023
– 2024/01
– 2023,2024/01

若要排除選取的檔案,請使用以下篩選器 (在此案例中,檔名會使用字尾 “-skipped”,例如 image-skipped.png):

add_filter( 'webpc_supported_source_file', function( bool $status, string $file_name, string $server_path ): bool {
    $excluded_suffix = '-skipped';
    if ( strpos( $file_name, $excluded_suffix . '.' ) !== false ) {
        return false;
    }
    return $status;
}, 10, 3 );

引數 $server_path 是目錄或檔案的絕對伺服器路徑。在篩選器中,您可以視需要套用更複雜的規則。

排除的目錄和檔案所做的變更會在圖片轉換前生效,不會影響已轉換的圖片。這些圖片必須從下列目錄手動移除:/wp-content/uploads-webpc/。

自訂目錄支援

外掛程式預設支援以下目錄:
– /gallery
– /plugins
– /themes
– /uploads

如果您想要新增自訂目錄的支援,請將下列程式碼新增至佈景主題目錄中的 functions.php 檔案(請使用正確的目錄名稱取代 custom-directory):

add_filter( 'webpc_source_directories', function ( $directories ) {
    $directories[] = 'custom-directory';
    return $directories;
} );

請記住,此目錄必須位於 /wp-content 目錄中。

如何手動執行轉換?

依預設,按一下 Start Bulk Optimization 按鈕時,會轉換所有圖片。此外,將新檔案新增至媒體庫時,也會自動進行轉換。

請記住,我們的外掛程式會將 WordPress 產生的圖片納入處理。有許多外掛程式會產生例如不同尺寸或不同版本的圖片。

如果您想與自行產生圖片的外掛程式整合,也可以這麼做。我們的外掛程式提供這類整合功能。這適用於 /wp-content 目錄中的所有圖片。

這是提供進階使用者使用的解決方案。如果您想與其他外掛程式整合,最好聯絡該外掛程式的作者,並提供我們外掛程式中可用操作的資訊。這將協助您更快找到解決方案。

若要手動轉換選取的檔案,可以使用下列動作,傳入包含路徑清單的陣列 (這些路徑必須是絕對伺服器路徑):

do_action( 'webpc_convert_paths', $paths, true );

另一種方法是從媒體庫傳入文章 ID,手動開始轉換選取的附件。請記得在註冊所有圖片尺寸後(也就是執行 add_image_size 函式後)再執行此動作:

do_action( 'webpc_convert_attachment', $post_id, true );

若要刪除手動轉換的檔案,請使用下列動作,並將包含檔案絕對伺服器路徑的陣列作為引數 (這會刪除手動轉換的檔案):

do_action( 'webpc_delete_paths', $paths );

WP-CLI 支援

此外掛程式支援 WP-CLI,可在伺服器層級更快速地轉換圖片。如何開始使用 WP-CLI 的詳細資訊,請參閱 手冊。支援的命令如下所述。

檢查網站上可轉換圖片的數量上限:

wp converter-for-media calculate

轉換所有圖片:

wp converter-for-media regenerate

轉換所有圖片(使用「強制再次轉換所有圖片」選項):

wp converter-for-media regenerate --force

外掛程式支援 CDN 嗎?

網站檔案(WordPress 檔案)和媒體庫中的圖片必須位於同一部伺服器上。如果是這樣,一切應該都能正常運作。

如果只有您的圖片位於另一部 CDN 伺服器上,很遺憾將無法正常運作,因為這類圖片是由另一部伺服器管理。

目前支援的 CDN 伺服器清單:
– BunnyCDN(使用前請參閱相關說明)

使用者評論

2026 年 10 月 15 日
Używałem tej przyzwoitej wtyczki przez kilka lat, aż stworzyłem własną. Ale ta jest naprawdę dobra. Wielkie podziękowania dla autora.
閱讀全部 1,105 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈Converter for Media – 圖片最佳化 | 轉換 WebP 及 AVIF〉的開發相關工作。

參與者

〈Converter for Media – 圖片最佳化 | 轉換 WebP 及 AVIF〉外掛目前已有 24 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈Converter for Media – 圖片最佳化 | 轉換 WebP 及 AVIF〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄。

變更記錄

6.7.0 (2026-10-14)

  • [Added] Dynamic delivery of WebP and AVIF files on Cloudflare free plans
  • [Added] Automatic configuration of Cache Rules for Cloudflare CDN

6.6.5 (2026-08-18)

  • [Added] Support for WordPress 7.1

6.6.4 (2026-08-05)

  • [Fixed] Fatal error during image conversion when encountering unhandled conversion errors

6.6.3 (2026-08-03)

  • [Fixed] Fatal error with undefined constant CURLINFO_SIZE_DOWNLOAD_T on old versions of cURL library

6.6.2 (2026-07-17)

  • [Changed] Error detection of non-working redirects

6.6.1 (2026-06-03)

  • [Added] Blocking of automatic image conversion when uploading images to Media Library during some server configuration errors
  • [Added] Blocking of automatic image conversion via WP-Cron during some server configuration errors
  • [Added] Blocking of regenerate command in WP-CLI during some server configuration errors

6.6.0 (2026-05-19)

  • [Changed] Minimum required PHP version from 7.1 to 7.4
  • [Added] Compatibility with PHP 8.5
  • [Added] Support for WordPress 7.0

6.5.6 (2026-05-07)

  • [Fixed] Handling of trailing slashes in REST API endpoint URLs

6.5.5 (2026-04-02)

  • [Fixed] Fatal error when source image is not a valid image file

6.5.4 (2026-02-26)

  • [Fixed] Displaying notification about Cloudflare cache

6.5.3 (2026-01-24)

  • [Changed] The Pass Thru loading mode is now restricted to standard WordPress directory structures only

6.5.2 (2026-01-24)

  • [Security] Replaced cURL-based fetching with native readfile(), implemented a whitelist of trusted website URLs and stricter extension validation in the Pass Thru loading mode to prevent unauthorized server-side requests (CVE-2026-1356)
  • [Security] Implemented physical path identity verification for the Pass Thru loading mode using realpath() to provide extra protection against Directory Traversal
  • [Security] Added X-Content-Type-Options: nosniff header for browser-side protection in the Pass Thru loading mode
  • [Fixed] Priority logic for loading next-generation image formats (AVIF/WebP)
  • [Added] Automatic refresh of an image loading mode after a plugin update
  • [Added] Significant performance boost for the Pass Thru loading mode by direct filesystem access instead of cURL requests
  • [Added] Support for Content-Length headers to optimize image delivery in the Pass Thru loading mode

6.5.1 (2026-01-23)

  • Version superseded by 6.5.2

6.5.0 (2026-01-11)

  • [Fixed] Rewrite rules to handle environments where RewriteRule may receive an absolute filesystem path
  • [Changed] Field to select the format to which the images should be converted
  • [Added] Settings field to modify the prefix used in RewriteRule to fix the absolute filesystem path issue

See changelog.txt for previous versions.