将文章插入 WordPress 网站,主要介绍两种方式:后台手动插入和使用 REST API 自动插入,手动插入就是自己网站后台编辑文章,今天讲一下用api自动插入文章方法(php代码版)。
使用 REST API 自动插入原理
如果需要通过代码(比如 Python、PHP、JavaScript 等)批量插入文章,或者在其他系统(如小程序、APP、自建 CMS)中同步文章到 WordPress,就需要用到 WordPress 自带的 REST API(无需额外安装插件,WordPress 4.7+ 版本默认开启)。
核心前提:获取 API 认证凭证
REST API 插入文章需要身份验证(避免匿名提交),推荐使用「应用密码」(WordPress 5.6+ 支持,最简便):
步骤 1:开启 WordPress REST API
默认已开启,可通过访问 你的域名/wp-json/ 验证,若返回 JSON 格式数据,说明 API 正常。
步骤 2:获取管理员账号和应用密码
- 后台登录管理员账号(需有「发布文章」权限);
- 进入「用户」→ 点击当前管理员用户名;
- 拉到「应用密码」 section,输入一个名称(如「API 插入文章」),点击「添加新应用密码」;
- 生成后会显示一串密码(如
abcd 1234 efgh 5678 ijkl 9012),务必复制保存(仅显示一次,丢失需重新生成)。
三、API 插入文章的核心说明
1. API 端点(Endpoint)
插入文章的 API 地址:POST https://你的域名/wp-json/wp/v2/posts
2. 请求头(Headers)
必须包含认证信息和数据格式:
http
Authorization: Basic base64编码后的账号:应用密码
Content-Type: application/json
base64编码规则:将管理员用户名:应用密码拼接(注意中间是冒号),再进行 Base64 编码(比如用户名admin,应用密码abcd 1234 efgh 5678 ijkl 9012,拼接后是admin:abcd 1234 efgh 5678 ijkl 9012,编码后类似YWRtaW46YWJjZCAxMjM0IGVmZ2ggNTY3OCBpamtsIDkwMTI=);- 在线 Base64 编码工具:base64encode.org(开发时可临时使用,正式环境用代码自动编码)。
3. 请求体(Body)
JSON 格式,包含文章的核心信息(必填字段:title、content、status),完整参数示例:
json
{
"title": "这是通过 API 插入的文章标题",
"content": "这是文章正文内容,可以包含 <strong>HTML 标签</strong> 和图片:<img src=\"https://你的域名/wp-content/uploads/2024/05/xxx.jpg\" alt=\"示例图片\">",
"status": "publish", // 发布状态:publish(立即发布)、draft(草稿)、pending(待审核)
"excerpt": "这是文章摘要(可选)",
"categories": [1, 3], // 分类ID(可在后台「文章→分类」查看,地址栏数字就是ID)
"tags": [2, 5], // 标签ID(可选)
"featured_media": 123, // 特色图片ID(需先通过 API 上传图片获取ID,可选)
"author": 1, // 作者ID(默认管理员ID为1,可选)
"format": "standard" // 文章格式:standard(标准)、aside(日志)、image(图片)等(可选)
}
四、代码示例(php语言)直接上完整代码
<?php
// 配置信息
$wp_url = "https://www.你的域名.com/"; // 请修改为你的WordPress网站地址
$username = "用户名"; // 请修改为你的WordPress管理员用户名
$app_password = "VgJw SGBa 1245 yyyy PqhK 5y5y"; // 应用密码
$author_id = 2; // 作者ID
$category_id = 2; // 分类ID
// 初始化变量
$form_data = array(
'scammer_name' => '',
'loss_amount' => '',
'platform' => '',
'contact' => '',
'real_info' => '',
'experience' => '',
'lesson' => ''
);
$errors = array();
$success = false;
$submitted = false;
$confirm_submit = false;
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 验证表单数据
if (isset($_POST['submit_confirm'])) {
// 双重确认后的最终提交
$form_data = $_POST;
$confirm_submit = true;
// 验证必填项
if (empty($form_data['scammer_name'])) $errors[] = "请填写骗子姓名或化名";
if (empty($form_data['loss_amount'])) $errors[] = "请填写诈骗损失金额";
if (empty($form_data['platform'])) $errors[] = "请填写被骗平台";
if (empty($form_data['contact'])) $errors[] = "请填写骗子联系方式";
if (empty($form_data['experience'])) $errors[] = "请填写详细诈骗经历";
// 如果没有错误,调用API发布文章
if (empty($errors)) {
// 调用修改后的函数
$publish_result = publish_to_wordpress($form_data, $username, $app_password, $author_id, $category_id);
$success = $publish_result['success'];
$debug_response = $publish_result['debug']; // 从返回结果中获取调试信息
$submitted = true;
}
} elseif (isset($_POST['submit'])) {
// 第一次提交,显示确认页面
$form_data = $_POST;
// 简单验证必填项
if (empty($form_data['scammer_name'])) $errors[] = "请填写骗子姓名或化名";
if (empty($form_data['loss_amount'])) $errors[] = "请填写诈骗损失金额";
if (empty($form_data['platform'])) $errors[] = "请填写被骗平台";
if (empty($form_data['contact'])) $errors[] = "请填写骗子联系方式";
if (empty($form_data['experience'])) $errors[] = "请填写详细诈骗经历";
}
}
/**
* 发布文章到WordPress(使用 cURL)
*
* @return array 一个包含 'success' (bool) 和 'debug' (string) 的数组
*/
function publish_to_wordpress($data, $username, $app_password, $author_id, $category_id) {
// 1. API 地址
$api_url = "https://www.51yhyh.com/wp-json/wp/v2/posts";
// 2. 生成文章内容 (这部分和原来一样)
$title = "在{$data['platform']}被{$data['contact']}被骗{$data['loss_amount']}";
$content = "
<h2>诈骗信息详情</h2>
<p><strong>骗子姓名/化名:</strong>" . htmlspecialchars($data['scammer_name'], ENT_QUOTES) . "</p>
<p><strong>诈骗损失:</strong>" . htmlspecialchars($data['loss_amount'], ENT_QUOTES) . "</p>
<p><strong>被骗平台:</strong>" . htmlspecialchars($data['platform'], ENT_QUOTES) . "</p>
<p><strong>骗子联系方式:</strong>" . htmlspecialchars($data['contact'], ENT_QUOTES) . "</p>
";
if (!empty($data['real_info'])) {
$content .= "<p><strong>骗子实名信息:</strong>" . htmlspecialchars($data['real_info'], ENT_QUOTES) . "</p>";
}
$content .= "
<h2>详细诈骗经历</h2>
<p>" . nl2br(htmlspecialchars($data['experience'], ENT_QUOTES)) . "</p>
<h2>经验教训总结</h2>
<p>" . htmlspecialchars($data['lesson'], ENT_QUOTES) . "</p>
<p><em>本文由受害者自愿提交,旨在提醒他人避免类似诈骗。如有侵权、不实或不适侵权等,请联系作者或者管理员处理</em></p>
";
// 3. 构建请求数据
$post_data = json_encode(array(
'title' => $title,
'content' => $content,
'status' => 'publish',
'excerpt' => $title,
'author' => $author_id,
'categories' => array($category_id),
));
// 4. 构建请求头(添加 Cache-Control 和 Pragma 头)
$auth = base64_encode("$username:$app_password");
$headers = array(
"Authorization: Basic $auth",
"Content-Type: application/json",
"Cache-Control: no-cache, no-store, must-revalidate", // 禁止缓存
"Pragma: no-cache", // 兼容旧服务器
"Expires: 0" // 立即过期
);
// 5. 初始化 cURL
$ch = curl_init($api_url);
if ($ch === false) {
$debug_info = "<p><strong>cURL 初始化失败:</strong> " . curl_error($ch) . "</p>";
return array('success' => false, 'debug' => $debug_info);
}
// 6. 设置 cURL 选项
curl_setopt_array($ch, array(
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
// 重要:获取响应头
CURLOPT_HEADER => true,
// 重要:获取请求头
CURLINFO_HEADER_OUT => true,
// 注意:在生产环境中应开启 SSL 验证
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
));
// 7. 执行请求并获取响应
$response_full = curl_exec($ch); // 包含响应头和响应体
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
// 8. 获取详细的请求和响应信息
$request_header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 9. 分离响应头和响应体
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$response_header = substr($response_full, 0, $header_size);
$response_body = substr($response_full, $header_size);
// 10. 构建调试信息
$debug_info = "
<p><strong>请求 URL:</strong> $api_url</p>
<p><strong>请求头:</strong><br><pre>" . htmlspecialchars($request_header) . "</pre></p>
<p><strong>请求体:</strong><br><pre>" . htmlspecialchars($post_data) . "</pre></p>
<hr>
<p><strong>cURL 错误码:</strong> $curl_errno</p>
<p><strong>cURL 错误信息:</strong> $curl_error</p>
<p><strong>响应状态码:</strong> $http_code</p>
<p><strong>响应头:</strong><br><pre>" . htmlspecialchars($response_header) . "</pre></p>
<p><strong>响应体:</strong><br><pre>" . (empty($response_body) ? '无响应内容 (请求可能被服务器防火墙拦截或超时)' : htmlspecialchars($response_body)) . "</pre></p>
";
// 11. 关闭 cURL 资源
curl_close($ch);
// 12. 判断是否成功并返回结果
$success = ($http_code === 201);
return array('success' => $success, 'debug' => $debug_info);
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>诈骗经历提交 - 曝光骗子,警示他人</title>
<style>
/* 全局样式 */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.6;
color: #333;
background-color: #f5f5f5;
padding: 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: #fff;
border-radius: 10px;
box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
header {
background: #2c5282;
color: #fff;
padding: 20px;
text-align: center;
}
header h1 {
font-size: 24px;
margin-bottom: 10px;
}
header p {
font-size: 16px;
opacity: 0.9;
}
.form-section, .confirm-section, .result-section {
padding: 25px;
}
h2 {
color: #2c5282;
margin-bottom: 20px;
font-size: 20px;
border-bottom: 2px solid #e2e8f0;
padding-bottom: 10px;
}
/* 表单样式 */
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #4a5568;
}
input[type="text"],
input[type="number"],
textarea,
select {
width: 100%;
padding: 12px 15px;
border: 1px solid #cbd5e0;
border-radius: 6px;
font-size: 16px;
transition: border-color 0.3s;
}
input:focus,
textarea:focus,
select:focus {
outline: none;
border-color: #2c5282;
box-shadow: 0 0 0 3px rgba(44, 82, 130, 0.1);
}
textarea {
min-height: 150px;
resize: vertical;
}
.help-text {
font-size: 14px;
color: #718096;
margin-top: 5px;
}
/* 按钮样式 */
.btn {
display: inline-block;
padding: 12px 24px;
background: #2c5282;
color: #fff;
border: none;
border-radius: 6px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: background-color 0.3s;
text-align: center;
}
.btn:hover {
background: #234269;
}
.btn-secondary {
background: #718096;
}
.btn-secondary:hover {
background: #4a5568;
}
.btn-danger {
background: #e53e3e;
}
.btn-danger:hover {
background: #c53030;
}
.btn-container {
margin-top: 30px;
display: flex;
gap: 15px;
flex-wrap: wrap;
}
/* 确认页面样式 */
.confirm-card {
background: #f7fafc;
border: 1px solid #e2e8f0;
border-radius: 6px;
padding: 20px;
margin-bottom: 25px;
}
.confirm-item {
margin-bottom: 15px;
}
.confirm-label {
font-weight: 600;
color: #2d3748;
margin-bottom: 5px;
}
.confirm-value {
color: #4a5568;
}
/* 结果页面样式 */
.result-icon {
text-align: center;
font-size: 60px;
margin-bottom: 20px;
}
.success-icon {
color: #48bb78;
}
.error-icon {
color: #e53e3e;
}
.result-message {
text-align: center;
font-size: 18px;
margin-bottom: 25px;
}
/* 错误提示 */
.error-messages {
background: #fee2e2;
color: #c53030;
border-radius: 6px;
padding: 15px;
margin-bottom: 20px;
list-style-position: inside;
}
.error-messages li {
margin-bottom: 5px;
}
.error-messages li:last-child {
margin-bottom: 0;
}
/* 响应式调整 */
@media (max-width: 600px) {
.container {
padding: 0;
}
.form-section, .confirm-section, .result-section {
padding: 15px;
}
.btn-container {
flex-direction: column;
gap: 10px;
}
.btn {
width: 100%;
}
header h1 {
font-size: 20px;
}
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>诈骗经历提交</h1>
<p>分享你的经历,警示他人,共同打击诈骗</p>
</header>
<?php if ($submitted): ?>
<!-- 提交结果页面 -->
<div class="result-section">
<div class="result-icon <?php echo $success ? 'success-icon' : 'error-icon'; ?>">
<?php echo $success ? '✓' : '✗'; ?>
</div>
<div class="result-message">
<?php if ($success): ?>
<h2>提交成功!</h2>
<p>感谢你的分享,你的经历将帮助更多人避免受骗。</p>
<?php else: ?>
<h2>提交失败</h2>
<p>抱歉,发布过程中出现错误。</p>
<?php endif; ?>
</div>
<!-- 总是显示调试信息,方便排查问题 不能删除
<div style="background-color: #f8f8f8; padding: 15px; border-left: 4px solid <?php echo $success ? '#00a000' : '#ff0000'; ?>; margin: 15px 0; text-align: left; font-family: monospace; overflow-x: auto;">
<p><strong>=== API 请求调试信息 ===</strong></p>
<?php echo $debug_response; ?>
</div>
-->
<div class="btn-container">
<a href="/jingyan/cheat" class="btn">前往查看</a>
</div>
<div class="btn-container">
<a href="/?action=report_scam" class="btn">返回提交页面</a>
</div>
</div>
<?php elseif (isset($_POST['submit']) && empty($errors)): ?>
<!-- 确认提交页面 -->
<div class="confirm-section">
<h2>确认提交信息</h2>
<p>请仔细检查以下信息,确认无误后点击"确认发布"。</p>
<div class="confirm-card">
<div class="confirm-item">
<div class="confirm-label">骗子姓名/化名</div>
<div class="confirm-value"><?php echo htmlspecialchars($form_data['scammer_name']); ?></div>
</div>
<div class="confirm-item">
<div class="confirm-label">诈骗损失</div>
<div class="confirm-value"><?php echo htmlspecialchars($form_data['loss_amount']); ?></div>
</div>
<div class="confirm-item">
<div class="confirm-label">被骗平台</div>
<div class="confirm-value"><?php echo htmlspecialchars($form_data['platform']); ?></div>
</div>
<div class="confirm-item">
<div class="confirm-label">骗子联系方式</div>
<div class="confirm-value"><?php echo htmlspecialchars($form_data['contact']); ?></div>
</div>
<?php if (!empty($form_data['real_info'])): ?>
<div class="confirm-item">
<div class="confirm-label">骗子实名信息</div>
<div class="confirm-value"><?php echo htmlspecialchars($form_data['real_info']); ?></div>
</div>
<?php endif; ?>
<div class="confirm-item">
<div class="confirm-label">详细诈骗经历</div>
<div class="confirm-value"><?php echo nl2br(htmlspecialchars($form_data['experience'])); ?></div>
</div>
<div class="confirm-item">
<div class="confirm-label">经验教训总结</div>
<div class="confirm-value"><?php echo htmlspecialchars($form_data['lesson']); ?></div>
</div>
</div>
<p class="help-text"><strong>注意:</strong>提交后文章将发布到全网,无法撤回。请确保信息真实准确。</p>
<form method="post" action="">
<!-- 隐藏字段,传递表单数据 -->
<?php foreach ($form_data as $key => $value): ?>
<input type="hidden" name="<?php echo $key; ?>" value="<?php echo htmlspecialchars($value); ?>">
<?php endforeach; ?>
<div class="btn-container">
<button type="submit" name="submit_confirm" class="btn btn-danger">确认发布</button>
<button type="button" class="btn btn-secondary" onclick="history.back()">返回修改</button>
</div>
</form>
</div>
<?php else: ?>
<!-- 表单页面 -->
<div class="form-section">
<h2>填写诈骗经历</h2>
<p>请详细填写你的被骗经历,帮助更多人提高警惕。</p>
<?php if (!empty($errors)): ?>
<ul class="error-messages">
<?php foreach ($errors as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<form method="post" action="">
<div class="form-group">
<label for="scammer_name">骗子姓名或化名 <span style="color: red;">*</span></label>
<input type="text" id="scammer_name" name="scammer_name"
value="<?php echo htmlspecialchars($form_data['scammer_name']); ?>"
required>
<div class="help-text">填写骗子的真实姓名、昵称或常用化名</div>
</div>
<div class="form-group">
<label for="loss_amount">诈骗损失 <span style="color: red;">*</span></label>
<input type="text" id="loss_amount" name="loss_amount"
value="<?php echo htmlspecialchars($form_data['loss_amount']); ?>"
required>
<div class="help-text">例如:5000元、1个比特币等</div>
</div>
<div class="form-group">
<label for="platform">被骗平台 <span style="color: red;">*</span></label>
<input type="text" id="platform" name="platform"
value="<?php echo htmlspecialchars($form_data['platform']); ?>"
required>
<div class="help-text">例如:微信、小红书、抖音、淘宝、游戏平台等</div>
</div>
<div class="form-group">
<label for="contact">骗子联系方式 <span style="color: red;">*</span></label>
<input type="text" id="contact" name="contact"
value="<?php echo htmlspecialchars($form_data['contact']); ?>"
required>
<div class="help-text">例如:QQ账号123456、微信号wxid_123、手机号138****1234等</div>
</div>
<div class="form-group">
<label for="real_info">骗子其他实名信息</label>
<textarea id="real_info" name="real_info"
placeholder="越多越好,如身份证号、银行卡账号、支付宝账号、真实姓名、地址等"><?php echo htmlspecialchars($form_data['real_info']); ?></textarea>
<div class="help-text">如果知道骗子的真实身份信息,请尽量提供,有助于他人识别</div>
</div>
<div class="form-group">
<label for="experience">详细诈骗经历 <span style="color: red;">*</span></label>
<textarea id="experience" name="experience"
required placeholder="请详细描述被骗的经过,包括时间、地点、过程、聊天记录等,越详细越好"><?php echo htmlspecialchars($form_data['experience']); ?></textarea>
<div class="help-text">描述越详细,对他人的警示作用越大。可以分段叙述,带上具体时间点</div>
</div>
<div class="form-group">
<label for="lesson">经验教训总结</label>
<textarea id="lesson" name="lesson"
placeholder="总结这次被骗的教训,提醒他人如何防范类似诈骗"><?php echo htmlspecialchars($form_data['lesson']); ?></textarea>
<div class="help-text">分享你的感悟和建议,帮助他人避免同样的陷阱</div>
</div>
<div class="btn-container">
<button type="submit" name="submit" class="btn">下一步:确认提交</button>
</div>
</form>
</div>
<?php endif; ?>
</div>
<script>
// 自动调整textarea高度
document.addEventListener('DOMContentLoaded', function() {
const textareas = document.querySelectorAll('textarea');
textareas.forEach(textarea => {
textarea.addEventListener('input', function() {
this.style.height = 'auto';
this.style.height = (this.scrollHeight) + 'px';
});
// 初始化高度
textarea.style.height = (textarea.scrollHeight) + 'px';
});
});
</script>
</body>
</html>
代码解释:我是在单独的php页面中用户插入被诈骗经历文章使用的,。页面让用户填写:骗子姓名或者化名,诈骗损失,被骗平台(提示:微信,小红书,抖音等),骗子联系方式(提示:如qq账号12456),骗子其他实名信息(提示:越多越好如身份证号,银行卡账号等),详细诈骗经历(提示:越详细越好,最好带上时间更增加。可以换行),经验教训总结) 提交按钮,点击提交按钮后重复提示是否提交并发布到全网,再次点击确认后就调用api发布到网站,并在页面返回发布状态。页面设置好看点,手机页面自适应。标题就用:在{被诈骗平台}被{骗子联系方式}被骗{诈骗损失}。文章内容是上门所有用户填写的类目和填写信息,换行将每个类目隔开。作者id为2,分类id为2,标签为空,摘要同标题。应用密码为*******
遇到的问题及处理方法
1.Warning: Use of undefined constant ABSPATH – assumed ‘ABSPATH’ (this will throw an Error in a future version of PHP)
你在运行 fanzhafabu.php 时遇到的这串错误,核心原因是 文件路径配置错误,导致代码无法找到 WordPress 核心文件。
问题原因说明
错误信息中提到的:
ABSPATH和WPINC是 WordPress 定义的常量,分别代表 WordPress 安装根目录和核心文件目录。- 你的代码在单独的 PHP 文件中直接使用了这两个常量,但因为这个文件没有通过 WordPress 环境加载(比如直接访问该文件),所以这两个常量未被定义,导致出现警告。
- 最后
require_once尝试包含一个不存在的文件路径(ABSPATHWPINC/class-http.php其实是ABSPATH和WPINC拼接错误的结果),从而引发致命错误。
解决方案
方案 1:推荐,通过 WordPress 加载该文件(最佳实践)
将你的 fanzhafabu.php 文件移动到 WordPress 主题目录或插件目录,并通过 functions.php 或插件主文件加载,确保 WordPress 环境已初始化。
操作步骤:
- 将
fanzhafabu.php移动到你的主题目录,例如:
/www/wwwroot/www.你的域名.com/wp-content/themes/你的主题名/fanzhafabu.php
2,在主题的 functions.php 中添加以下代码,通过 WordPress 的 template_redirect 钩子加载你的文件
function load_scam_report_page() {
// 当访问特定 URL 时加载你的文件
if (isset($_GET['action']) && $_GET['action'] === 'report_scam') {
require_once get_template_directory() . '/fanzhafabu.php';
exit;
}
}
add_action('template_redirect', 'load_scam_report_page');
3.通过以下 URL 访问你的表单页面:
https://www.你的域名.com/?action=report_scam
2.一直提示发布失败,可能是被缓存插件原因
WordPress API 请求被服务器的缓存插件(WP-Super-Cache)拦截了,并返回了网站的首页 HTML 内容,而不是预期的 JSON 响应。
问题分析
- 请求本身是成功的:
cURL 错误码: 0和响应状态码: 200表明,你的服务器成功地向https://www.51yhyh.com/wp-json/wp/v2/posts发送了请求,并且对方服务器也返回了一个状态为 “成功” 的响应。 - 响应内容不正确:
响应体部分显示,服务器返回的不是创建文章成功后应有的 JSON 数据,而是你网站首页的完整 HTML 代码。 - 罪魁祸首:响应体末尾的 HTML 注释暴露了问题的根源:
<!-- Cached page generated by WP-Super-Cache on 2025-11-09 17:57:02 -->。这说明,当你的 PHP 脚本通过curl访问/wp-json/这个地址时,服务器上的 WP-Super-Cache 插件认为这是一个普通的页面访问请求,并直接返回了它之前缓存好的首页内容,而没有将请求转发给 WordPress 的 REST API 处理程序。
解决方案
你需要配置 WP-Super-Cache 插件,让它不对 wp-json 的请求进行缓存。
步骤如下:
- 登录你的 WordPress 后台。
- 找到并进入 WP-Super-Cache 的设置页面。通常在 “设置” -> “WP-Super-Cache”。
- 找到 “高级” 设置标签页。
- 在 “不缓存的字符串” 或 “Rejected URI (s)” 输入框中,添加以下内容:
^/wp-json/(带正则符号,匹配所有 /wp-json/ 开头的路径) - 填写后点击 “更新状态”,并清空现有缓存
















