菜鸟笔记
提升您的技术认知

WordPress提速指南

查看页面生成时间、数据库查询次数、使用内存

为了评估优化效果,首先需要量化评估指标。WordPress 提供了一系列函数来帮助我们查看运行状态。

页面生成时间

WordPress 提供了 timer_stop函数,它返回从页面开始到函数被调用的时间的字符串,它有两个参数,$display 为 0|false 时返回,为 1|true 时显示,$precision 为精度。

timer_stop( int|bool $display, int $precision = 3 ): string

数据库查询次数

WordPress 提供了 get_num_queries函数,它返回数据库查询次数。

get_num_queries():int

使用内存

PHP 提供了 memory_get_peak_usage函数,它返回 PHP 分配的内存峰值(字节)。$real_usage 为 true 时获取从系统分配的内存的实际大小,为 false 时获取 emalloc() 使用的内存

Memory_get_peak_usage ( bool $real_usage=false ): int

使用方法

将以上这些代码插入到页面中

耗时:<?php timer_stop(1,5); ?> | 数据库查询次数:<?php echo get_num_queries(); ?> | 内存消耗(MiB):<?php echo memory_get_peak_usage()/1024/1024; ?>

PHP 优化

PHP 主要影响页面生成时间。

更新 PHP 版本

更新 PHP 版本在大多数时候能够提升速度,例如从 PHP7.4 升级到 PHP8,需要注意检查 WordPress 与 PHP 的兼容性。

安装插件 OPcache

OPcache 能够显著减少 PHP 的开销,有效提升 PHP 的速度。

数据库优化

数据库的速度在访问量大时对页面生成时间有较大影响,可以使用缓存来减少数据库查询次数。

使用 memcached

需要在服务器上安装 memcached 并在 PHP 中安装 memcached 插件,并上传对应的 object-cache.php 到 /wp-content/ 目录(object-cache.php 实现不同,可以自行找一下),WordPress 会自行调用。

WordPress 优化

将 WP-Cron 挂载到系统中

WordPress 的各类定时任务是通过 WP-Cron 实现的,每次加载页面的时候都会进行检查,可以将 WP-Cron 挂载到系统中以减少开销。首先禁用 WP-Cron,在 wp-config.php 添加一下内容:

define( 'DISABLE_WP_CRON', true );
并在系统中定时执行以下代码(可以使用 Linux 的 cron 实现,crontab -e 以穿创建定时命令)

wget --delete-after http://YOUR_SITE_URL/wp-cron.php

提升静态资源的加载速度

提升静态资源的加载速度的方法就有很多了,例如使用 CDN、延长静态资源的缓存时间等,这里就不详细展开了。

终极提速:全站静态化

若以上做法都不能达到满意的速度,可以考虑做静态化,就是将动态页面定时缓存起来,若有访问则返回缓存静态页面,大幅提升相应速度。但是这样做也会带来一些其他的问题,例如浏览量不能及时更新,一些前端功能失效等。这里也不详细展开了,有许多插件都可以实现类似的功能。

查看更多影响页面生成的因素

可以使用 Chrome 的 Lighthose 对网站页面进行全面评估,具体使用方法不在此处展开。