这两天DeepSeek V4发布的消息在站长圈子里传得挺凶,搞得我也手痒想试试。说实话,作为主题铺的站长,平时对这种AI工具的依赖度挺高,尤其是写一些WordPress钩子函数的时候。之前我一直蹲在Google的Gemini 3.1 Pro Preview坑里,毕竟这种国际大厂的模型在逻辑和代码准确度上确实有两把刷子。但这次既然DeepSeek号称升级了专家模式,我就想干脆拿它跟Gemini来个实战PK。这次测试我不看那些虚头巴脑的跑分指标,咱们草根站长只看实际写出来的代码能不能跑通,能不能解决我的痛点。
一、为什么我要折腾这个双线缓存刷新
主题铺手头有个站点,为了追求极致的加载速度,搞了个挺复杂的CDN架构。国内流量我走的是腾讯云EO加速,也就是那个EdgeOne,国外流量就直接扔给Cloudflare处理。这种方案性能是拉满了,但维护起来那是真的心累。最蛋疼的事情就是每次我后台更新一篇文章,或者是改了个分类页面的内容,国内外的缓存就不同步。访客经常反馈说怎么看到的内容还是几小时前或者几天前的。手动去两个后台点刷新简直是浪费生命,所以我打算搞个函数直接挂载到WordPress的发布和更新动作上,实现全自动化刷新。
二、DeepSeek V4专家模式给出的方案
我先把需求塞给了DeepSeek V4的专家模式,都是联网模式和深度思考同时启用的。说实话,它吐代码的速度确实快,而且看这代码的排版,各种注释写得还挺像那么回事。它给我手搓了一套腾讯云API的V3签名逻辑,这点倒是让我挺意外。代码如下:
// ---------- 腾讯云 EO 缓存刷新 (EdgeOne Purge) ----------
function ztp_purge_tencent_eo_urls($urls) {
// ======= 请在此填入腾讯云 EO 凭证 =======
$secret_id = '你的腾讯云 SecretId';
$secret_key = '你的腾讯云 SecretKey';
$zone_id = '你的 EO 站点 ID'; // 类似 zone-xxxxxxxx
// =====================================
if (empty($secret_id) || empty($secret_key) || empty($zone_id) || empty($urls)) {
return;
}
// 腾讯云 EO 刷新 URL 接口:单次最多支持 1000 个,按需分批
$service = 'teo';
$version = '2022-09-01';
$action = 'PurgeCache';
$host = 'teo.tencentcloudapi.com';
$endpoint = "https://$host";
$region = 'ap-guangzhou'; // EO 目前为全球服务,区域可固定
$timestamp = time();
$date = gmdate('Y-m-d', $timestamp);
$http_method = 'POST';
$canonical_uri = '/';
$canonical_querystring = '';
$ct = 'application/json; charset=utf-8';
$algorithm = 'TC3-HMAC-SHA256';
// 分批处理,单次最多 1000 个 URL
$chunks = array_chunk($urls, 1000);
foreach ($chunks as $chunk) {
$payload = wp_json_encode([
'ZoneId' => $zone_id,
'Urls' => $chunk,
]);
// ************* 计算签名 *************
$hashed_request_payload = hash('sha256', $payload);
$canonical_headers = "content-type:$ct\nhost:$host\nx-tc-action:" . strtolower($action) . "\n";
$signed_headers = 'content-type;host;x-tc-action';
$canonical_request = "$http_method\n$canonical_uri\n$canonical_querystring\n$canonical_headers\n$signed_headers\n$hashed_request_payload";
$credential_scope = "$date/$service/tc3_request";
$string_to_sign = "$algorithm\n$timestamp\n$credential_scope\n" . hash('sha256', $canonical_request);
$secret_date = hash_hmac('sha256', $date, 'TC3' . $secret_key, true);
$secret_service = hash_hmac('sha256', $service, $secret_date, true);
$secret_signing = hash_hmac('sha256', 'tc3_request', $secret_service, true);
$signature = bin2hex(hash_hmac('sha256', $string_to_sign, $secret_signing, true));
$authorization = "$algorithm Credential=$secret_id/$credential_scope, SignedHeaders=$signed_headers, Signature=$signature";
// ************* 发送请求 (极致非阻塞) *************
wp_remote_post($endpoint, [
'method' => 'POST',
'blocking' => false,
'timeout' => 1,
'sslverify' => false,
'headers' => [
'Content-Type' => $ct,
'Host' => $host,
'X-TC-Action' => $action,
'X-TC-Version' => $version,
'X-TC-Timestamp' => $timestamp,
'X-TC-Region' => $region,
'Authorization' => $authorization,
],
'body' => $payload,
]);
}
}
// ---------- Cloudflare + 腾讯云 EO 联合刷新 ----------
add_action('transition_post_status', 'ztp_precise_purge_cdn_cache', 10, 3);
function ztp_precise_purge_cdn_cache($new_status, $old_status, $post) {
// 1. 终极防御:确保 $post 对象合法,防止第三方垃圾插件引发异常
if (empty($post) || !isset($post->ID)) {
return;
}
// 2. 忽略系统自动保存和修订版本,防止频繁误触发
if (wp_is_post_revision($post->ID) || wp_is_post_autosave($post->ID)) {
return;
}
// 3. 仅在:发布新文章、更新已发布文章、或将已发布文章下架(回收站/草稿)时触发
if ($new_status !== 'publish' && $old_status !== 'publish') {
return;
}
// 4. 仅对文章 (post) 和 页面 (page) 生效,跳过菜单、附件等无关对象
if (!in_array($post->post_type, ['post', 'page'])) {
return;
}
// 5. 收集需要精准刷新的 URL 矩阵
$urls_to_purge = [];
$urls_to_purge[] = home_url('/'); // 刷新首页
$urls_to_purge[] = get_permalink($post->ID); // 刷新当前文章/页面
// 🚀 核心追溯:安全获取分类 URL,并【递归向上追溯所有父级大分类】
$categories = get_the_category($post->ID);
if (!empty($categories) && !is_wp_error($categories)) {
$cat_ids_to_purge = [];
foreach ($categories as $cat) {
$cat_ids_to_purge[] = $cat->term_id;
// 顺藤摸瓜:获取该子分类的所有父级、爷级分类 ID
$ancestors = get_ancestors($cat->term_id, 'category');
if (!empty($ancestors)) {
$cat_ids_to_purge = array_merge($cat_ids_to_purge, $ancestors);
}
}
// 去重父级 ID
$cat_ids_to_purge = array_unique($cat_ids_to_purge);
foreach ($cat_ids_to_purge as $term_id) {
$urls_to_purge[] = get_category_link($term_id);
}
}
// 安全获取标签 URL
$tags = get_the_tags($post->ID);
if (!empty($tags) && !is_wp_error($tags)) {
foreach ($tags as $tag) {
$urls_to_purge[] = get_tag_link($tag->term_id);
}
}
// 6. 数据清洗:去重并过滤掉空值(防黑防呆机制)
$urls_to_purge = array_values(array_filter(array_unique($urls_to_purge)));
// 7. 同时发送给 Cloudflare 和腾讯云 EO
ztp_purge_cloudflare_urls($urls_to_purge);
ztp_purge_tencent_eo_urls($urls_to_purge); // ← 新增腾讯云 EO 刷新
}
三、Gemini 3.1 Pro Preview给出的答案
就在我准备把DeepSeek的代码往生产环境扔之前,我心想还是稳一手。万一这玩意报错了,我这一晚上的折腾就白费了。于是我把同样的需求塞给了Gemini 3.1 Pro Preview。有趣的事情发生了,Gemini给出的代码在调用腾讯云API的时候,细节处理得有些不一样。如下代码:
// --- ZTP 极客专属:文章发布/更新/删除时,双线精准异步刷新 CF 和 EO 缓存 (大厂级免SDK架构) ---
add_action('transition_post_status', 'ztp_precise_purge_cdn_cache', 10, 3);
function ztp_precise_purge_cdn_cache($new_status, $old_status, $post) {
// 1. 防御:确保 $post 对象合法,过滤自动保存和修订版本
if (empty($post) || !isset($post->ID) || wp_is_post_revision($post->ID) || wp_is_post_autosave($post->ID)) {
return;
}
// 2. 仅响应核心状态流转:发布、更新、下架(回收站)
if ($new_status !== 'publish' && $old_status !== 'publish') {
return;
}
// 3. 仅对文章和页面生效
if (!in_array($post->post_type, ['post', 'page'])) {
return;
}
// 4. 构建刷新矩阵 (首页、本文)
$urls_to_purge = [];
$urls_to_purge[] = home_url('/');
$urls_to_purge[] = get_permalink($post->ID);
// 获取并追溯分类树
$categories = get_the_category($post->ID);
if (!empty($categories) && !is_wp_error($categories)) {
$cat_ids =[];
foreach ($categories as $cat) {
$cat_ids[] = $cat->term_id;
$ancestors = get_ancestors($cat->term_id, 'category');
if (!empty($ancestors)) {
$cat_ids = array_merge($cat_ids, $ancestors);
}
}
foreach (array_unique($cat_ids) as $term_id) {
$urls_to_purge[] = get_category_link($term_id);
}
}
// 获取标签
$tags = get_the_tags($post->ID);
if (!empty($tags) && !is_wp_error($tags)) {
foreach ($tags as $tag) {
$urls_to_purge[] = get_tag_link($tag->term_id);
}
}
// 5. 绝对去重清洗
$urls_to_purge = array_values(array_filter(array_unique($urls_to_purge)));
// 6. 🚀 开启全球双线狙击
ztp_purge_cloudflare($urls_to_purge);
ztp_purge_edgeone($urls_to_purge);
}
// ==========================================
// 模块一:Cloudflare 异步清理
// ==========================================
function ztp_purge_cloudflare($urls) {
// 【请在此填入 CF 凭证】
$zone_id = '填入你的Cloudflare区域ID';
$api_token = '填入你的Cloudflare API令牌';
if (empty($zone_id) || empty($api_token) || empty($urls)) return;
$api_url = "https://api.cloudflare.com/client/v4/zones/{$zone_id}/purge_cache";
$chunks = array_chunk($urls, 30); // CF 限制每次最多 30 个
foreach ($chunks as $chunk) {
wp_remote_post($api_url,[
'method' => 'POST',
'blocking' => false,
'timeout' => 1,
'sslverify' => false,
'headers' =>[
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_token,
],
'body' => wp_json_encode(['files' => $chunk])
]);
}
}
// ==========================================
// 模块二:腾讯云 EdgeOne 异步清理 (原生 V3 签名)
// ==========================================
function ztp_purge_edgeone($urls) {
// 【请在此填入 腾讯云 凭证】
$secret_id = '填入你的腾讯云SecretId';
$secret_key = '填入你的腾讯云SecretKey';
$zone_id = '填入你的EdgeOne的ZoneId(以zone-开头)';
if (empty($secret_id) || empty($secret_key) || empty($zone_id) || empty($urls)) return;
$host = 'teo.tencentcloudapi.com';
$service = 'teo';
$action = 'CreatePurgeTask';
$version = '2022-09-01';
$chunks = array_chunk($urls, 100); // EO 限制更宽,100个一批
foreach ($chunks as $chunk) {
// 构建请求 Payload
$payload = wp_json_encode([
'ZoneId' => $zone_id,
'Type' => 'purge_url',
'Method' => 'invalidate', // invalidate (标记过期) 比 delete (物理删除) 体验更好
'Targets' => $chunk
], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
// --- 核心黑科技:手搓腾讯云 API V3 签名 ---
$timestamp = time();
$date = gmdate('Y-m-d', $timestamp);
$canonicalUri = '/';
$canonicalQueryString = '';
$canonicalHeaders = "content-type:application/json; charset=utf-8\nhost:{$host}\n";
$signedHeaders = 'content-type;host';
$hashedRequestPayload = hash('sha256', $payload);
$canonicalRequest = "POST\n{$canonicalUri}\n{$canonicalQueryString}\n{$canonicalHeaders}\n{$signedHeaders}\n{$hashedRequestPayload}";
$algorithm = 'TC3-HMAC-SHA256';
$credentialScope = "{$date}/{$service}/tc3_request";
$hashedCanonicalRequest = hash('sha256', $canonicalRequest);
$stringToSign = "{$algorithm}\n{$timestamp}\n{$credentialScope}\n{$hashedCanonicalRequest}";
$secretDate = hash_hmac('sha256', $date, "TC3" . $secret_key, true);
$secretService = hash_hmac('sha256', $service, $secretDate, true);
$secretSigning = hash_hmac('sha256', 'tc3_request', $secretService, true);
$signature = hash_hmac('sha256', $stringToSign, $secretSigning);
$authorization = "{$algorithm} Credential={$secret_id}/{$credentialScope}, SignedHeaders={$signedHeaders}, Signature={$signature}";
// ----------------------------------------
// 发送给腾讯云 EdgeOne 节点
wp_remote_post("https://{$host}/",[
'method' => 'POST',
'blocking' => false, // 依然是非阻塞秒级放手
'timeout' => 1,
'sslverify' => false,
'headers' =>[
'Content-Type' => 'application/json; charset=utf-8',
'Host' => $host,
'Authorization' => $authorization,
'X-TC-Action' => $action,
'X-TC-Version' => $version,
'X-TC-Timestamp' => $timestamp
],
'body' => $payload
]);
}
}四、双方对比差别
老实说,刚开始看的时候我觉得这两段代码差不多,甚至DeepSeek的代码看起来更整齐一点。但我仔细盯着腾讯云EO的那个API接口看,发现事情不对劲。DeepSeek写的动作是PurgeCache,而Gemini写的动作是CreatePurgeTask。这两个玩意到底谁是对的?
我当时就想,这好办,我直接把DeepSeek的代码发给Gemini让它挑刺,再把Gemini的代码发给DeepSeek。好家伙,这两位大佬在对话框里直接吵起来了。
DeepSeek信誓旦旦地说腾讯云的API就是这么用的,还给我解释了一通底层逻辑。
![图片[1]-DeepSeek V4和Gemini 3.1 Pro日常生成代码对比测试-主题铺](https://cdn.zhutipu.com/wp-content/uploads/2026/04/20260425191410354.png/ztp)
Gemini也不甘示弱,说对方的代码在生产环境下绝对跑不通。
![图片[2]-DeepSeek V4和Gemini 3.1 Pro日常生成代码对比测试-主题铺](https://cdn.zhutipu.com/wp-content/uploads/2026/04/20260425191413632.png/ztp)
这种AI互掐的场面我见多了,但真涉及到底层代码准确性,我只能去翻腾讯云的官方API文档。
查完文档那一刻我真的有点无语。事实证明Gemini是对的。腾讯云EO的API接口里,真正用来创建清理任务的动作确实叫CreatePurgeTask。至于DeepSeek给出的那个PurgeCache,估计是从其他CDN厂商或者是老掉牙的API文档里脑补出来的。
![图片[3]-DeepSeek V4和Gemini 3.1 Pro日常生成代码对比测试-主题铺](https://cdn.zhutipu.com/wp-content/uploads/2026/04/20260425191416659.png/ztp)
这其实反映了国内AI模型的一个硬伤。它们在生成前端页面、写简单的算法或者是搞点文案创作时确实很猛,但一旦涉及这种非常垂直、甚至连文档都在随时更新的技术细节,就容易掉链子。国内很多模型在知识库断层或者是遇到盲区的时候,由于语言组织能力太强,它们会一本正经地给你编造一个极其合理的解释。如果你是个建站新手,真的一点怀疑都没有直接用了,估计得对着白屏的控制台哭半天。
简单来说就是,我们认为的AI模型,虽然可以联网,但是大部分时间都是基于自己模型已有的数据进行生成答案,很少使用互联网深度探索或者爬取正确内容后再生成答案。结果DeepSeek模式已有的数据的时间估计是2025年初或者更早,Gemini的模型已有的数据时间或者在生成答案的实时性上会更优于DeepSeek的模式。
其实吧,在一些难点或者是这种跟第三方平台深度对接的问题上,我感觉Gemini这种国际大厂的模型在知识库的深度和实时性上还是更稳一点。退一步讲,不管AI说得多么天花乱坠,咱们站长自己动手查一下官方文档的习惯绝对不能丢。毕竟AI只是个助手,它不背锅,最后网站挂了还得咱们自己修。这次PK结果挺明显的,DeepSeek V4想在生产力层面彻底取代Gemini,看来还有挺长一段路要走。
当然了,主题铺测试的不一定准,只是自己使用过程中发现的一个小问题。也是很希望国内的这些AI模型更加强大。
普通人用用确实绰绰有余,但如果你要折腾这种硬核代码,还是多对比几个模型比较稳妥。你说呢?

















暂无评论内容