×

解析Wordpress离奇bug【发布失败,此响应不是合法的JSON响应。】的来龙去脉

作者:jquery2021.12.29来源:Web前端之家浏览:13654评论:2
关键词:Wordpress

500.jpg

今天上午,有个朋友咨询我关于wordpress的问题,他最近建了个新站,放在那里很久没动了。最近想改版,然后发现更新页面或者发布文章的时候出现问题,提示:发布失败,此响应不是合法的JSON响应;并且在发布文章的时候,那些栏目、专题等列表都没数据。有些同学此时此刻就有点蒙蔽了,为什么会这样呢?

问题解析

单从这个提示上去看,去定位问题,会有些棘手。我们需要一步步去发现问题。

1、检查数据库是否有问题

因为栏目和专题列表没数据,可以在宝塔里测试下。

2、检查编辑器

在网上可以查阅到,很多同学说是编辑器有问题,方法是:搜索安装插件“Classic Editor”,启用 并使用默认设置就行。

也可以这样做:

禁用WordPress古腾堡编辑器代码,在主题的 functions.php 文件添加下面的代码:

//Wordpress 5.0+ 禁用 Gutenberg 编辑器
add_filter('use_block_editor_for_post', '__return_false');
remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );

大家也可以去试试,操作如图:

20211229114141.jpg

3、防火墙

检查下您的防火墙是否有打开,或者有什么特殊的设置。

4、伪静态问题

这个是非常重要的啊,因为wordpress现在都是采用伪静态的方法,所以你需要检查下你否已经配置好伪静态的功能,接下来分享下如何搞。

如果您不是在宝塔面板上操作,可以进行如下操作:

若使用Nginx访问则修改conf下对应vhost下的子站域名conf文件,在server最后一个} 前加入配置:
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){

    set $rule_2 1;
}
if (-d $request_filename){

    set $rule_2 1;
}
if ($rule_2 = “1”){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;

如果您在用宝塔面板维护的话,这个就很简单的了,直接打开宝塔,点击网站,然后选择:伪静态 > wordpress。下面就会生成伪静态代码。然后保存即可。具体如下图:

QQ截图20211229114729.jpg

解决方案

建议我们使用宝塔面板,给朋友装了宝塔,我一上来直接就使用了第四种方法,问题就解决了,因为发生此类问题,绝大部分就是伪静态背锅。所以大家先考虑第四种解决方案,如果再有问题,再去弄其他的。

OK,差不多就这么多了,如果你还没解决,可以留言或者加群咨询咯。

创作不易,您觉得文章不错,可以点下面的“赏赐”按钮,给小编鼓励鼓励!!!

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/wordpress20211229.html

网友评论文明上网理性发言 已有2人参与

发表评论:

评论列表

  • qdxx qdxx  发布于 2021-12-29 13:44:55   回复该评论
  • 这个的确坑,我也是刚遇到,感谢分享。