网站在运行时,发现缓存设置不太合理,为了实现“不缓存后台、不缓存预览、缓存整站、更新文章后能及时更新缓存”这个方案,和ChatGPT进行了一番探讨,它给我了一个非常不错的实施计划。
一、不缓存后台、不缓存预览、缓存整站
页面范围 | 缓存策略 |
---|---|
① 后台 /wp-admin* | 永久不缓存(完全绕过 CDN) |
② 首页 / | 缓存 2 小时 |
③ 所有其他页面 /* | 缓存 Everything + TTL 7天 |
以上内容通过使用 Cache Rules(缓存规则) 实现。

二、内容更新后,Cloudflare 缓存自动清除,确保访客看到最新内容
方法1:使用 Cloudflare 官方 WordPress 插件(推荐)
这是最简单、稳定、无代码方案,适合大多数 WordPress 用户!
在 WordPress 后台插件中心搜索 Cloudflare
并安装 👉 或直接地址:Cloudflare 插件
安装并激活后,进入插件设置,输入你的:
Cloudflare 邮箱账号
API Token(建议创建一个专用 Token,只给缓存清除权限)
设置好后,启用自动清缓存功能
方法 2:自己写代码(进阶方案)
如果你不想用插件,可以用 Cloudflare 的 API 清缓存,写一段 PHP 代码,在更新文章时调用它。
示例代码(放在主题 functions.php
中):
function clear_cloudflare_cache_on_update($post_ID) {
$url = get_permalink($post_ID);
$zone_id = '你的 Zone ID';
$api_token = '你的 API Token';
$data = array(
'files' => array($url)
);
$response = wp_remote_post("https://api.cloudflare.com/client/v4/zones/$zone_id/purge_cache", array(
'method' => 'POST',
'headers' => array(
'Authorization' => 'Bearer ' . $api_token,
'Content-Type' => 'application/json',
),
'body' => json_encode($data),
));
}
add_action('save_post', 'clear_cloudflare_cache_on_update');
第二套方案适合不喜欢插件太多的朋友,但是需要获取Cloudflare的Zone ID和API Token。
补充:预览文章发现缓存旧内容问题
增加一条规则:*preview=true*
→ Bypass cache ✅