Cloudflare CDN 缓存设置,定义wordpress缓存规则

网站在运行时,发现缓存设置不太合理,为了实现“不缓存后台、不缓存预览、缓存整站、更新文章后能及时更新缓存”这个方案,和ChatGPT进行了一番探讨,它给我了一个非常不错的实施计划。

一、不缓存后台、不缓存预览、缓存整站

页面范围缓存策略
① 后台 /wp-admin*永久不缓存(完全绕过 CDN)
② 首页 /缓存 2 小时
③ 所有其他页面 /*缓存 Everything + TTL 7天

以上内容通过使用 Cache Rules(缓存规则) 实现。

Cloudflare CDN可以设置规则,免费版本满足基础需求

二、内容更新后,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 ✅

相关文章