Performance Lab

外掛說明

Performance Lab 是致力於加強網站效能模組的集合,大部分的模組最後會整合至 WordPress 核心程式中。這個外掛能讓網站管理員在這些模組整合至核心程式前,啟用並測試個別模組以了解相關模組的功能,並提供意見反應讓開發人員改進相關解決方案。

目前這個外掛包含以下效能模組:

  • 主要色彩:加入儲存圖片主要色彩並以這個主要色彩建立預留位置背景色彩圖片的功能。
  • WebP 上傳:如果伺服器支援,便會在上傳 JPEG 圖片後建立 WebP 格式圖片。
  • 完整頁面快取狀態檢查:在 [網站狀態] 中加入完整頁面快取檢查。
  • WebP 支援狀態檢查:在 [網站狀態] 中加入 WebP 支援檢查。
  • 自動載入選項狀態檢查:在 [網站狀態] 中加入自動載入選項檢查。
  • 已佇列資源狀態檢查:在 [網站狀態] 中加入 CSS 及 JS 資源檢查。
  • 持續物件快取狀態檢查:在 [網站狀態] 中為具有大量資料的網站加入持續物件快取檢查。

安裝方式

自動安裝

  1. 前往 [外掛]→[安裝外掛]
  2. 搜尋「Performance Lab」
  3. 安裝並啟用 Performance Lab 外掛。

手動安裝

  1. 將外掛安裝套件解壓縮所得的 performance-lab 資料夾上傳至網站的 /wp-content/plugins/ 目錄。
  2. 前往 [外掛] 頁面。
  3. 啟用 Performance Lab 外掛。

外掛啟用後

  1. 前往 [設定]→[效能] 選單。
  2. 啟用想要使用的個別模組。

常見問題集

開發這個外掛的目的為何?

Performance Lab 的主要目的在於這些效能模組整合至 WordPress 核心程式前,讓使用者可以進行測試。這個外掛的本質是功能性外掛的集合,這讓它與其他提供非 WordPress 核心程式效能功能的外掛不同,因為其他效能外掛可能會需要 WordPress 核心程式不提供的功能。目前 Performance Lab 提供的效能模組會依照相關規則更新,例如模組整合至 WordPress 核心程式後,便會在外掛中移除,並且新版外掛不定期中加入新模組。

這個外掛可以使用於正式網站嗎?

依據前述的外掛主要目的,請將它視為包含各種效能模組的 Beta 測試版外掛。請注意,除非是標註為「實驗性功能」的模組,全部模組均已經過測試及確認,使用在正式網站應該沒有問題。與其他外掛相同,使用者均應自負使用風險。

使用者可以在何處提交外掛意見反應?

這個外掛作為 WordPress 核心程式的功能性外掛,我們非常希望、也非常感謝大家提供意見反應。使用者可以在外掛的技術支援論壇提出意見反應,如果有特別的問題需要回報,請在外掛的 GitHub 存放庫提出。

如何為這個外掛做出貢獻?

非常感謝各位的各種貢獻,以下提供幾種可行的貢獻方式:

使用者評論

2022 年 9 月 15 日
Glad to see that performance optimization is now being implemented in the core. Just tried it and loved. Simple and easy to configure.
2022 年 7 月 20 日
Great job. Glad the core team is focusing on performance, and it's working great!
2022 年 6 月 22 日
Loving all the features so far. Dominant color is a game change for my site. Keep pushing. This is what is going to keep WordPress dominating.
2022 年 6 月 7 日
i appreciate that you are finally going to add webp support after 10 years to wordpress core, but why not add "avif" too since its so much better and supported by more browsers?
閱讀全部 15 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈Performance Lab〉的開發相關工作。

參與者

Performance Lab 外掛目前已有 14 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈Performance Lab〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

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

變更記錄

1.5.0

Enhancements

  • Site Health: Improve autoloaded options check by highlighting largest autoloaded options. (353)

1.4.0

Enhancements

  • Images: Enhance JS replacement mechanism for WebP to JPEG to more reliably replace full file name. (443)
  • Images: Introduce webp_uploads_get_content_image_mimes() to get content image MIME replacement rules. (420)
  • Infrastructure: Add PERFLAB_PLUGIN_DIR_PATH constant for plugin_dir_path(). (429)
  • Infrastructure: Rename Site Health check modules for language and consistency. (423)

Bug Fixes

  • Site Health: Fix incorrect usage of badge colors in all Site Health checks. (472)
  • Images: Add the original image’s extension to the WebP file name to ensure it is unique. (444)
  • Images: Fix REST API support for plain permalinks. (457)
  • Infrastructure: Remove plugin option network-wide for Multisite during uninstall. (458)

1.3.0

Enhancements

  • Images: Add replacing of images only in frontend context. (424)
  • Images: Allow control for which image sizes to generate additional MIME type versions. (415)
  • Images: Discard WebP image if it is larger than corresponding JPEG image. (418)
  • Images: Optimize computing dominant color and transparency for images by combining the two functions. (381)
  • Images: Provide fallback JPEG images in frontend when WebP is not supported by the browser. (360)
  • Images: Rely on wp_get_image_editor() methods argument to check whether it supports dominant color methods. (404)
  • Images: Remove experimental label from Dominant Color module and turn on by default for new installs. (425)
  • Site Health: Remove perflab_aea_get_resource_file_size() in favor of wp_filesize(). (380)
  • Site Health: Update documentation link for autoloaded options. (408)
  • Infrastructure: Implement mechanism to not load module if core version is available. (390)

Bug Fixes

  • Images: Ensure incorrect usage of webp_uploads_upload_image_mime_transforms filter is treated correctly. (393)
  • Images: Fix PHP notice and bug in logic for when webp_uploads_prefer_smaller_image_file filter is set to true. (397)
  • Images: Fix an infinite loop in the WebP fallback mechanism. (433)
  • Images: Fix dominant color upload process to not override potential third-party editors. (401)
  • Images: Remove additional image backup sources & sizes files when attachment deleted. (411)
  • Infrastructure: Avoid including .husky directory in plugin ZIP. (421)
  • Infrastructure: Do not show admin pointer in multisite Network Admin. (394)

1.2.0

Features

  • Images: Add Dominant Color module to provide color background for loading images. (282)
  • Site Health: Add Site Health check for Full Page Cache usage. (263)

Enhancements

  • Images: Update webp_uploads_pre_generate_additional_image_source filter to allow returning file size. (334)
  • Infrastructure: Introduce plugin uninstaller routine. (345)
  • Infrastructure: Use wp_filesize instead of filesize if available. (376)

Bug Fixes

  • Images: Avoid overwriting existing WebP files when creating WebP images. (359)
  • Images: Back up edited full image sources when restoring the original image. (314)

1.1.0

Features

  • Infrastructure: Add Performance Lab generator meta tag to wp_head output. (322)

Enhancements

  • Images: Introduce filter webp_uploads_pre_generate_additional_image_source to short-circuit generating additional image sources on upload. (318)
  • Images: Introduce filter webp_uploads_pre_replace_additional_image_source to short-circuit replacing additional image sources in frontend content. (319)
  • Images: Refine logic to select smaller image file in the frontend based on webp_uploads_prefer_smaller_image_file filter. (302)
  • Images: Replace the featured image with WebP version when available. (316)
  • Site Health: Update Site Health Autoloaded options documentation link. (313)
  • Infrastructure: Avoid unnecessarily early escape of Site Health check labels. (332)

Bug Fixes

  • Object Cache: Correct label for persistent object cache Site Health check. (329)
  • Images: Only update the specified target images when an image is edited. (301)

1.0.0

Features

  • Images: Generate secondary image MIME types when editing original image. (235)

Enhancements

  • Images: Introduce webp_uploads_prefer_smaller_image_file filter allowing to opt in to preferring the smaller image file. (287)
  • Images: Select MIME type to use in frontend content based on file size. (243)
  • Site Health: Update Site Health reports copy for more clarity and consistency. (272)

Documentation

  • Infrastructure: Define the plugin’s version support and backward compatibility policy. (240)

1.0.0-rc.1

Enhancements

  • Images: Change expected order of items in the webp_uploads_content_image_mimes filter. (250)
  • Images: Replace images in frontend content without using an additional regular expression. (262)
  • Images: Restore and backup image sizes alongside the sources properties. (242)

Bug Fixes

  • Images: Select image editor based on WebP support instead of always using the default one. (259)

1.0.0-beta.3

Bug Fixes

  • Infrastructure: Ensure default modules are loaded regardless of setting registration. (248)

1.0.0-beta.2

Features

  • Images: Create additional MIME types for the full size image. (194)
  • Site Health: Add module to warn about excessive amount of autoloaded options. (124)

Enhancements

  • Images: Adds sources information to the attachment media details of the REST response. (224)
  • Images: Allow developers to select which image format to use for images in the content. (230)
  • Images: Allow developers to tweak which image formats to generate on upload. (227)
  • Images: Replace the full size image in the_content with additional MIME type if available. (195)
  • Object Cache: Include memcached extension in checks for object cache support. (206)
  • Infrastructure: Add plugin banner and icon assets. (231)
  • Infrastructure: Use .gitattributes instead of .distignore to better support ZIP creation. (223)

Bug Fixes

  • Images: Use original image to generate all additional image format sub-sizes. (207)
  • Infrastructure: Replace unreliable activation hook with default value for enabled modules. (222)

Documentation

  • Infrastructure: Update release instructions to include proper branching strategy and protect release branches. (221)

1.0.0-beta.1

Features

  • Images: Add WebP for uploads module. (32)
  • Images: Support retry mechanism for generating sub-sizes in additional MIME types on constrained environments. (188)
  • Images: Update the_content with the appropiate image format. (152)
  • Site Health: Add WebP support in site health. (141)
  • Site Health: Add module to alert about excessive JS and CSS assets. (54)
  • Object Cache: Add Site Health check module for persistent object cache. (111)
  • Infrastructure: Add settings screen to toggle modules. (30)
  • Infrastructure: Added admin pointer. (199)

Enhancements

  • Object Cache: Always recommend object cache on multisite. (200)
  • Images: Create image sub-sizes in additional MIME types using sources for storage. (147)
  • Images: Update module directories to be within their focus directory. (58)
  • Site Health: Enhance detection of enqueued frontend assets. (136)
  • Infrastructure: Add link to Settings screen to the plugin’s entry in plugins list table. (197)
  • Infrastructure: Enable all non-experimental modules on plugin activation. (191)
  • Infrastructure: Include generated module-i18n.php file in repository. (196)
  • Infrastructure: Introduce perflab_active_modules filter to control which modules are active. (87)
  • Infrastructure: Remove unnecessary question marks from checkbox labels. (110)
  • Infrastructure: Rename object-caching to object-cache. (108)

Bug Fixes

  • Images: Ensure the -scaled image remains in the original uploaded format. (143)
  • Images: Fix typo to access to the correct image properties. (203)
  • Infrastructure: Ensure that module header fields can be translated. (60)

Documentation

  • Site Health: Mark Site Health Audit Enqueued Assets module as experimental for now. (205)
  • Infrastructure: Add readme.txt and related update script. (72)
  • Infrastructure: Add changelog generator script. (51)
  • Infrastructure: Add contribution documentation. (47)
  • Infrastructure: Add release documentation. (138)
  • Infrastructure: Define module specification in documentation. (26)