wordpress文档

WordPress 6.5 通过新的翻译格式文件显著提高了站点的加载速度


在过去的一年里,WordPress 开发者仔细分析了 WordPress 现有的 i18n 系统的性能,并最终创建了一个新的名为「Performance Translations」(高效翻译)的功能插件:

该插件提供了一个全面改进的性能更好的语言包加载系统,在经过成千上万用户的测试之后,WordPress 6.5 核心代码中已经内置了该插件的功能。

这个新功能在加载语言包文件时更快,并且使用的内存更少,并且还支持同时加载多个语言环境,这使得语言环境切换也变得更快。除此之外,它还支持包含在 PHP 格式的翻译文件,这样既可利用 OPCache 对其进行加速。

新的.l10n.php 翻译文件格式

现在从 WordPress.org 下载的语言包里面,除了原来就有的 .mo 和 .po 文件之外,可能还会多出一个 .l10n.php 新文件 ,如果有该格式的文件,WordPress 6.5 就优先通过它来加载语言包,该文件使得翻译加载更快,并用到的内存更少。

这是一个渐进式的增强,意思是如果只有 .mo 文件而没有 .l10n.php 文件,WordPress 依旧通过加载 .mo 文件来加载语言包,反之亦然,因此理论上现在语言包里面可以只有 .l10n.php 文件,但是目前 WordPress 还是需要有对应的 .mo 和 .po 文件,主要用于语言包的更新检查,不过这个限制将来会得到解决。

如何生成新的.l10n.php 文件

如果要生成新的 PHP 翻译文件,GlotPress 的 4.0 版(translate.WordPress.org 的支持插件)已经支持新 .l10n.php 格式。

除此之外,WP-CLI 2.10.0 ( i18n-command2.6.0) 也提供了一个新的命令 wp i18n make-php,可以根据 .po 文件创建翻译 PHP 文件:

# Create PHP files for all PO files in the current directory.$ wp i18n make-php .# Create a PHP file from a single PO file in a specific directory.$ wp i18n make-php example-plugin-de_DE.po languages

如果是 WordPress 插件开发者,还可以使用新 WP_Translation_File 类将文件转换 .mo 为翻译 PHP 文件:

$contents = WP_Translation_File::transform( $mofile, 'php' );if ( $contents ) { file_put_contents( $path_to_php_file, $contents );}禁用.l10n.php 文件

如果出于某种原因想禁用翻译 PHP 文件的支持,可以使用新的 translation_file_format filter 来改变翻译文件的首选格式(默认是 php):

add_filter('translation_file_format', fn () => 'mo');

此外 WordPress 6.5 还提供了一个新的 filter load_translation_file,可以用它来更改翻译文件的路径。

$l10n全局变量

我们知道 WordPress 使用全局变量 $l10n 来存储已加载的翻译,在 WordPress 6.5 之前,这个全局变量是 MO 类的实例,它用于读取 .mo 文件提供的翻译字符串,随着 WordPress 6.5 的更新,$l10n 全局变量将改为 WP_Translations 类的实例。

WP_Translations 类充当了一个桥梁,维持了与 MO 类相似的特性和接口,以确保向后兼容性。通过这种方式,WordPress 可以透明地处理新的 PHP 翻译文件格式,同时保持对旧的 .mo 文件格式的支持。

缓存语言文件路径列表

此外,WordPress 6.5 还有个优化改进,在 6.5 之前,像 get_available_languages() 这样的函数 和 WP_Textdomain_Registry 这样的类,每次都是直接使用 glob() 函数搜索 .mo 文件,这可能导致一些性能问题,特别是在拥有很多翻译或在文件系统较慢的环境中的网站上。

因此,WordPress 6.5 引入了新的缓存机制,通过 WP_Textdomain_Registry 类集中查找翻译文件,然后将其存储在 group 为 translations 的对象缓存中,缓存键的格式为 cached_mo_files_<hash>,其中 <hash> 是扫描目录的 MD5 哈希值,例如 wp-content/languages,并且每当更新语言包时,缓存就会被清除。



Wordpress建站教程:中文与外贸建站伪静态固定链接格式设置

作者:悦然wordpress建站(悦然建站)

(此处已添加小程序,请到今日头条客户端查看)

继续分享wordpress建站教程。我们都知道网站链接尽量使用静态的对百度SEO或谷歌SEO优化都会更好一些,如果我们使用的是wordpress建站,那么就需要设置好网站的固定链接,选择一个适合的伪静态链接格式。大家可以观看悦然建站的官网,我的网站伪静态链接是域名后面统一以数字ID+html的格式。

设置方法如上图所示,这种做法比较适合中文网站,而且使用数据ID的格式对以后的wordpress小程序适配也会比较好,因为小程序适配后的页面链接地址也是以数字ID结尾的,比如本文的链接地址为【域名/23269.html】,我对应的百度小程序链接地址就是【pages/detail/detail?id=23269】。

?如果我们做的是wordpress外贸建站,那么wordpress默认提供的几个伪静态固定链接格式都是可以直接用的(第一个除外),不过据众多wordpress建站用户的反馈,英文或其它语言的外贸建站使用文章名格式的固定链接就可以了,对谷歌SEO优化比较友好,如上图所示。