缓存策略
深入了解 WordPress 缓存机制,包括对象缓存、页面缓存和 CDN。
📚 缓存类型
| 类型 | 说明 | 生命周期 |
|---|---|---|
| 页面缓存 | 渲染后的 HTML | 可配置 |
| 对象缓存 | 数据库查询结果 | 请求级 |
| 瞬态 | 临时数据 | 可设置 |
| OPcache | PHP 字节码 | 服务器级 |
| 浏览器缓存 | 静态资源 | 可配置 |
🗄️ 对象缓存
Transients API
php
<?php
// 设置缓存
set_transient('my_data', $data, HOUR_IN_SECONDS);
set_site_transient('my_site_data', $data, DAY_IN_SECONDS);
// 获取缓存
$data = get_transient('my_data');
$data = get_site_transient('my_site_data');
// 删除缓存
delete_transient('my_data');
delete_site_transient('my_site_data');
// 检查是否存在
$exists = (get_transient('my_data') !== false);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wp_cache 函数
php
<?php
// 设置
wp_cache_set('key', $value, 'group', 3600);
// 获取
$value = wp_cache_get('key', 'group');
// 删除
wp_cache_delete('key', 'group');
// 增加/减少
wp_cache_incr('counter', 1, 'group');
wp_cache_decr('counter', 1, 'group');
// 刷新组
wp_cache_flush_group('group');
wp_cache_flush(); // 全部刷新1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
🌐 CDN 配置
CDN 集成
php
<?php
// CDN URL 替换
add_filter('wp_get_attachment_url', function($url) {
return str_replace(home_url(), 'https://cdn.example.com', $url);
});
// 静态资源 CDN
add_filter('style_loader_src', 'cdn_filter', 10, 2);
add_filter('script_loader_src', 'cdn_filter', 10, 2);
function cdn_filter($src, $handle) {
$cdn_domain = 'https://cdn.example.com';
return str_replace(home_url('/wp-content'), $cdn_domain . '/wp-content', $src);
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
