如图:WordPress 发布失败。错误信息:此响应不是合法的JSON响应。

1. 检查 WordPress REST API 是否正常工作
WordPress 依赖 REST API 进行数据交互(如古腾堡编辑器、AJAX 请求)。输入以下 URL 测试:
https://你的网站域名/wp-json/
- 正常情况:返回 JSON 格式的数据(类似
{"name":"网站名称","description":"..."}
)。 - 错误情况:返回空白、404 或 500 错误。
解决方法
- 刷新固定链接:
进入 WordPress 后台 → 设置 → 固定链接 → 直接点击 保存更改(无需修改),重新生成.htaccess
规则。 - 检查
.htaccess
文件:
确保文件包含 WordPress 默认规则(如下)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
2. 禁用插件或切换主题
插件或主题冲突 是常见原因。按以下步骤排查:
- 禁用所有插件:
进入后台 → 插件 → 已安装插件 → 全选 → 批量操作 → 停用。
然后逐个重新启用,观察哪个插件触发问题。 - 切换默认主题:
暂时启用 Twenty Twenty-Four 等官方主题,测试是否恢复正常
3. 检查服务器 PHP 和 HTTPS 配置
(1)PHP 配置问题
- 确保 PHP 版本 ≥ 7.4(推荐 8.0+):
进入服务器终端运行:bash复制
php -v
- 如果版本过低,升级 PHP(方法因服务器环境而异)。
- 调整 PHP 内存限制:
编辑wp-config.php
,添加:
define('WP_MEMORY_LIMIT', '256M');
(2)HTTPS 混合内容问题
如果网站启用了 HTTPS,但部分资源仍通过 HTTP 加载,会导致 JSON 请求被浏览器拦截。
- 强制全站 HTTPS:
在wp-config.php
中添加:
define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS'] = 'on';
4. 检查 WordPress 核心文件完整性
手动替换 WordPress 核心文件(不影响数据库和上传的内容):
- 下载最新版 WordPress(中文版:cn.wordpress.org)。
- 删除服务器上 除以下目录外 的所有文件:
/wp-content/
/wp-config.php
- 上传新版 WordPress 文件到服务器,覆盖旧文件。
5. 调试模式(查看详细错误)
在 wp-config.php
中启用调试模式:
php复制
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true); // 错误日志保存到 /wp-content/debug.log
define('WP_DEBUG_DISPLAY', false); // 不直接显示错误
刷新页面后检查 /wp-content/debug.log
,定位具体错误。
6. 数据库修复
如果数据库表损坏,可能导致 JSON 数据异常。
- 使用 WP-DBManager 插件修复优化数据库。
- 或手动运行 SQL 命令(备份数据库前):
REPAIR TABLE wp_options;
以上为可能遇到的问题情况和解决方式,通过我自身的建站情况进行排查:
第一种情况:WordPress 编辑器插件的问题
WordPress 网站是刚搭建的,根本没有下载、安装任何的插件(排除)
第二种情况:Wordpress WP RestAPI的问题
如果发表文章的时候通过浏览器的 F12 功能来审查资源,你会发现 WPREST API 会报错,这个时候可以尝试禁用 WPREST API 来测试是否正常工作。
想要禁用 WPRESTAPI,可以安装下面这个插件来实现。
WPREST API 插件地址:https://cn.wordpress.org/plugins/disable-wp-rest-api/
刚好这个服务器也有另一个 WordPress 网站,而且连程序都是从同一个服务器复制粘贴的,所以这个情况不存在(排除)
第三种情况:系统镜像的问题
有可能是系统镜像里面某个组件和新版本的 WordPress 不兼容导致的,如果是这样的话,就需要直接换个镜像解决的更快一点。
但是,同一个服务器,两个 wp 网站,一个就是正常的,新搭建的这个却不正常,不应该。(排除)
推荐:如何修复WordPress错误您的浏览器阻止或不支持Cookies
第四种情况:伪静态的问题

服务器的宝塔面板伪静态规则修改,在宝塔控制面板打开对应的 WordPress 网站,选择设置,然后选择伪静态,选择 WordPress 程序,点击保存即可。(解决问题)
现在,WordPress网站又可以正常运行

参考文章: