今天上午,有个朋友咨询我关于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' );
大家也可以去试试,操作如图:
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。下面就会生成伪静态代码。然后保存即可。具体如下图:
解决方案
建议我们使用宝塔面板,给朋友装了宝塔,我一上来直接就使用了第四种方法,问题就解决了,因为发生此类问题,绝大部分就是伪静态背锅。所以大家先考虑第四种解决方案,如果再有问题,再去弄其他的。
OK,差不多就这么多了,如果你还没解决,可以留言或者加群咨询咯。
创作不易,您觉得文章不错,可以点下面的"赏赐"按钮,给小编鼓励鼓励!!!