A faster load_textdomain

外掛說明

NOTE This plugin is not needed if you are running WordPress 6.5 or later, as the functionality is built into WordPress core. If you need to generate translation in the new .l10n.php format, use the Performant Translations plugin instead.

這個 WordPress 外掛能將 .mo 檔案快取為 PHP 陣列,並以 include 運算式處理過的陣列取代 .mo 檔案。在 PHP 環境中,載入及執行另一個 PHP 檔案理論上會最為快速。

外掛運作方式

如果網站上有會載入 textdomain 的外掛或佈景主題,例如使用 load_textdomain( 'textdomain', $path_to_mo_file ),這個外掛便會產生以下效果:

  1. WP_CONTENT_DIR . '/cache/a-faster-load-textdomain' 目錄中查詢 .mo 檔案的 PHP 版本。
  2. 如果 PHP 版本資訊存在,便以 include 運算式處理 .mo 檔案。
  3. 如果 PHP 版本資訊不存在,載入 .mo 檔案並將檔案儲存為 wp-content/cache/a-faster-load-textdomain/ 目錄中的 PHP 陣列。

包含本地化介面字串的 PHP 陣列可以透過 PHP OPcache 進行快取。如果網站伺服器上的 PHP OPcache 已啟用,包含本地化介面字串的 PHP 陣列便會快取在伺服器記憶體中,不需再對 PHP 檔案進行剖析。

篩選器

a_faster_load_textdomain_cache_path

變更快取路徑前,請先了解預設路徑為 WP_CONTENT_DIR . '/cache/a-faster-load-textdomain'

add_filter( 'a_faster_load_textdomain_cache_path', function( $path ) {
    return WP_CONTENT_DIR . '/cache/my-cache';
} );

GitHub

這個外掛在 GitHub 存放庫提供原始程式碼。

安裝方式

手動安裝 (建議):
– 下載外掛檔案並解壓縮後,將 a-faster-load-textdomain.phpclass-afld-cachehandler.php 上傳至 wp-content/mu-plugins 目錄。

自動安裝:
– 搜尋「A faster load_textdomain」並使用 WordPress 外掛安裝程式安裝。
– (多站網路) 在 WordPress 管理後台的 [外掛] 選單中啟用外掛。

也可以使用 composer 命令安裝外掛:

composer require soderlind/a-faster-load-textdomain

使用者評論

這個外掛目前沒有任何使用者評論。

參與者及開發者

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

參與者

〈A faster load_textdomain〉外掛目前已有 4 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈A faster load_textdomain〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

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

變更記錄

2.3.0

  • If running WordPress 6.5, give a notice that the plugin is not needed.

2.2.4

  • Fail gracefully if cache directory can’t be created.

2.2.3

  • Housekeeping.

2.2.2

  • Add uninstall handler. Will remove the cache directory when the plugin is uninstalled.

2.2.1

  • Fix bug in cache handler.

2.2.0

  • Refactor cache handler.

2.1.5

  • Bump version to force deploy to WordPress.org

2.1.4

  • Deploy with GitHub Actions to WordPress.org

2.1.3

  • Remove mkdir()

2.1.2

  • Fail gracefully if $cache_path can’t be created.

2.1.1

  • Add aflt_load_textdomain filter.

2.1.0

  • Rename namespace to Soderlind\Plugin\A_Faster_Load_Textdomain
  • Rename cache directory to WP_CONTENT_DIR . '/cache/a-faster-load-textdomain'

2.0.1

  • Rename file to a-faster-load-textdomain.php to follow WordPress plugin standards.

2.0.0

  • Refactor code, instead of using a transient, save .mo file as an PHP array, and include the array instead of the .mo file.

1.0.3

  • Housekeeping.

1.0.2

  • DRY (Don’t Repeat Yourself) code. Add namespace.

1.0.1

  • Add multisite support

1.0.0

  • Initial release