如何解決WordPress插件中的資源加載問題?使用automattic/jetpack-assets可以!

可以通過以下地址學習 composer學習地址

在開發(fā) wordpress 插件時,資源加載問題一直是個挑戰(zhàn),尤其是涉及到腳本、樣式和多語言支持的管理。我最近在一個項目中遇到了這樣的問題,用戶反映插件加載速度慢,影響了體驗。經過一番探索,我發(fā)現(xiàn) automattic/jetpack-assets 這個庫能夠很好地解決這些問題。

automattic/jetpack-assets 是一個專門用于 Jetpack 生態(tài)系統(tǒng)包的資產管理工具庫。它提供了多種功能來優(yōu)化資產加載,包括路徑操作、異步腳本的排隊,以及 DNS 資源提示等。這些功能使得插件開發(fā)者可以更高效地管理資源,提升用戶體驗。

使用這個庫非常簡單,通過 Composer 就可以安裝:

composer require automattic/jetpack-assets

以下是一些常用的方法和用法:

  • ::get_file_url_for_environment( $min_path, $non_min_path, $package_path ):根據 SCRIPT_DEBUG 常量選擇 $min_path 和 $non_min_path 之間的路徑,類似于 plugins_url()。可以使用 jetpack_get_file_for_environment 過濾器來控制返回的 URL。

  • ::add_resource_hint( $urls, $type ):將域名(字符串或數組)添加到 WordPress 的資源提示中。支持的類型包括 dns-prefetch(默認)、preconnect、prefetch 和 prerender。

  • ::normalize_path( $path ):規(guī)范化路徑或 URL 中的 . 和 .. 組件。

  • ::register_script( $handle, $path, $relative_to, $options ):使用 @wordpress/dependency-extraction-webpack-plugin 生成的數據注冊 Webpack 打包的腳本和樣式。這替代了讀取 .asset.php 文件并調用 wp_register_script()、wp_register_style()(可能根據 is_rtl() 改變文件名)和 wp_set_script_translations() 的操作。

  • ::enqueue_script( $handle ):排隊之前使用 ::register_script() 注冊的腳本和樣式。

  • ::alias_textdomains_from_file( $file ):使用 automattic/jetpack-composer-plugin 記錄的數據,啟用共享 Composer 庫的翻譯。

  • ::alias_textdomains( $from, $to, $totype, $ver ):如果 ::alias_textdomains_from_file() 不夠用,手動添加文本域別名。

此外,Assets 包還提供了一個 wp-jp-i18n-loader 腳本,用于支持使用 @automattic/i18n-loader-webpack-plugin 的 Webpack 延遲加載包。無需初始化,只需調用 ::alias_textdomains_from_file() 或 ::alias_textdomains(),如果這些包來自共享的 Composer 庫。

在 WordPress 插件中使用這個包時,建議使用 Jetpack Autoloader 作為自動加載器,以確保與其他使用此包的插件最大限度地兼容。

通過使用 automattic/jetpack-assets,我成功地提升了插件的加載速度和資源管理效率。這不僅解決了用戶反饋的問題,還為未來的開發(fā)提供了更好的基礎。如果你在開發(fā) WordPress 插件時遇到了類似的資源加載問題,不妨嘗試一下這個庫。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享