最近 WordPress 程序是经常出问题,主要是升级到6.4.1版后,我还把php版本升级到了8.2版,主题就不太兼容,经常改动导致出现些莫名其妙的问题。
更新或发布失败。 此响应不是合法的JSON响应
就是在编辑文章或者发布文章时无法保存,提示:“更新或发布失败。 此响应不是合法的JSON响应”,没错,中间是个句号,查询网上文章都没有解决此故障。
网上大多是说这几个解决方式:新版谷腾堡编辑器问题,要禁用,WP Rest API 问题,也禁用,还有伪静态问题,而我的解决方式是文件编码问题。

因为修复文件,顺便改了下文件编码,我把主题里某个文件(先后是 show-useragent.php、functions.php)的编码改成了UTF-8格式,被系统自带的 Notepad++ 这个不良编辑器误导了,应该要选择转为无 BOM 格式编码,改完保存问题解决。
BOM(Byte Order Mark)即字节顺序标记,是 Unicode 字符编码的一种标记形式。在某些文件开头,特别是使用 UTF-8 或 UTF-16 编码时,可能会包含 BOM。
在某些情况下,BOM 可能会导致问题,特别是在处理文件时可能会引入不必要的字符。在一些程序和编辑器中,可以选择是否保存文件时包含 BOM。如果不需要 BOM,可以尝试保存文件时选择不包含字节顺序标记。
Notepad++的命名不是问题,反而 Notepad2 和 Notepad3 的菜单翻译成签名是不太准确,可能习惯选择最简短的 UTF-8 了。

文章列表缩略图无法显示
A TimThumb error has occured
The following error(s) occured: GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library Query String : src=https://www.nzonex.com/file/pic/softapp/Notepad-1.jpg&w=280&h=210&a=&zc=1 TimThumb version : 2.8.14
报错是说 GD 没有加载,我切换为 php7.4 好像可以,好像又没有完全解决,把我搞得一头雾水。

GD(Graphics Draw)库是一个用于动态创建图像的开源图形库。它提供了一组用于图像处理的函数,使开发者能够创建、操作和输出各种类型的图像。GD 库通常与 PHP 集成,可以在服务器端生成图像,例如用于动态生成验证码、缩略图或图表等。
创建一个 PHP 文件,比如 phpinfo.php
,并在文件中添加以下内容:
<?php
phpinfo();
?>
没有看到 GD,仔细检查 php8.2,在 php.ini 中发现有个地方写错了。php7.4 版加载的 dll 文件是:php_gd2.dll,php8.2 加载的文件名更改为了:php_gd.dll,而 php.ini 却没有改,导致没有正常加载。
;php7.4
extension=php_gd2.dll
;php8.2
extension=php_gd.dll
;这个没有加,并不影响
extension=gd
;检查正确已开启
allow_url_fopen = On
这是主机系统的提供的商店安装包有错误,于是把 php8.2 重装了几次,问题并没有解决。
排查到是主题问题,于是修改主题目录下的 timthumb-config.php 文件,非本站的外链(外部链接)图片地址域名加上,本站的域名也要加上,这相当于是白名单。
//裁剪外部链接图片
define('ALLOW_EXTERNAL', true);
//不需要裁剪所有外部链接图片
define('ALLOW_ALL_EXTERNAL_SITES', false);
// 添加外链图片地址域名
if(! isset($ALLOWED_SITES)){
$ALLOWED_SITES = array (
'ww1.sinaimg.cn',
'www.nzonex.com',
'imgcache.gtimg.cn',
'hiphotos.baidu.com',
);
}
改完问题依旧没有解决。

我再检查文件编码,还是编码问题。改为 UTF-8 编码后(不带签名或BOM),问题解决了。
所以,你要是遇到这些莫名其妙的问题,看看最近是不是改了编码格式了呢?

2023年11月15日 09:18 沙发
后台编码大部分都是UTF8格式吧。
2023年11月15日 09:33 1层
@夏日博客 并不是,而是 ANSI 的居多