Gutenberg编辑器中短码更新失败,提示非有效JSON响应求助
Gutenberg短码保存时JSON响应错误的解决办法
问题核心
你的短码在Gutenberg编辑器的编辑预览环节被执行了,而非仅在前端页面渲染时运行。短码输出的HTML/图片内容混入了编辑器保存时的JSON响应,导致验证失败,弹出报错。
修复步骤
限制短码仅在前端执行
在短码函数里添加判断,避开编辑器环境:function pull_tag_images_shortcode($atts) { // 检测是否处于Gutenberg编辑界面 if (is_admin() && isset($_GET['context']) && $_GET['context'] === 'edit') { return '[标签图片短码]'; // 返回占位文本,不执行拉取逻辑 } // 原短码逻辑开始 $atts = shortcode_atts(['tag' => 'default'], $atts); // 拉取特定标签文章图片的代码... return $final_output; } add_shortcode('pull_tag_images', 'pull_tag_images_shortcode');清理编辑器相关缓存
- 清空浏览器的本地存储(Local Storage)和缓存
- 到WordPress后台
工具 > 站点健康 > 信息 > 媒体,点击清除缓存 - 临时切换到经典编辑器,再切回Gutenberg,重置编辑器状态
排查残留代码与冲突
- 检查主题
functions.php和自定义插件,确保没有残留的短码关联代码 - 用健康检查插件(测试环境使用)禁用所有其他插件、切换默认主题,逐步排查是否有冲突
- 检查主题
规范短码使用
务必把短码放在专用短码块里,不要直接插入段落块,避免编辑器误解析执行短码逻辑。
关键提醒
短码返回的内容必须是纯字符串,不能包含PHP错误、警告信息,这些内容会直接破坏JSON响应结构,导致保存失败。
内容的提问来源于stack exchange,提问作者Marsh
相关产品推荐
相关产品推荐

