错误:“更新失败:响应不是有效的JSON响应”,带有自定义短码

时间:2021-03-04 作者:Loraga

我正在构建一个主题,将通过外部API恢复的数据集成到其中。

我选择创建一个插件,将所有数据处理放在其中,它允许我生成一个用户可以交互的快捷码,例如,更改主页上显示的项目数。

在这方面,一切都正常,但我的问题是古腾堡编辑;当我将我的快捷码添加到页面并要保存它时,将显示以下错误消息:

Updating failed: The response is not a valid JSON response.

但是,更改已正确保存。

此消息令用户担忧,因为:

离开时,web浏览器会显示一个JavaScript警报,表示修改将丢失(但这是错误的)

每次我们回到页面编辑时,它都要求我们恢复页面的旧版本

关于我插件的PHP函数,有一些函数的目的是返回HTML并显示它。我首先认为问题来自这里,因为我们在管理端,不需要执行任何操作,所以我尝试将我的函数调用置于验证我们不在管理页的条件下:

if(!is_admin()) {
        myFunctionDisplayHTML();
    }
但我仍然收到这个错误消息。你知道如何解决这个问题吗?提前感谢您的帮助!

我的WordPress版本是5.6.2, PHP版本7.4.1 我的网站在当地环境中运行。

1 个回复
最合适的回答,由SO网友:Loraga 整理而成

问题解决后,我将所有返回HTML的函数调用替换为:

ob_start();
myFunctionDisplayHTML();  
return ob_get_clean();
JSON响应有效。

谢谢@phatskat,你让我走上了正确的道路:-)解决方案find here

相关推荐

Wordpress Vue Js Shortcodes

目前,我正在与Vue一起开发wordpress网站。js和wordpress REST API,找不到使用wordpress ShortCodeEx的解决方案:Contact Form 7 我一直在尝试这个例子,但它似乎对我不起作用Vue.js + AJAX Shortcode有没有人有过类似的问题?编辑:For ExampleIn regular wordpress我可以用这种方式使用联系人表单插件 <section class=\"container section__form display-