有些上传到WordPress的图像不会显示在媒体库中。上传图像,甚至裁剪到定义的大小,媒体库中有一个条目,但预览图像不会显示。我甚至可以将它们作为特色图片使用,它们会正确显示在我的网站上。
我能够找到问题的原因:如果JPGs中的IPTC“关键字”字段中有特殊字符(如德语umlauts),则会出现此问题。只要我使用Exiftool 要从显示上述问题的JPG中删除“Keywords”字段,此文件可以正常工作。我可以在由不同公司托管的两个完全不同的web服务器上的三个WordPress安装上验证这个问题。Wordpress版本为4.4.1
.
我倾向于将此报告为WordPress bug。但在这样做之前,我想进一步弄清真正的问题。我可以发现,对于所有“糟糕”的图像,没有_wp_attachment_metadata
中的条目wp_postmeta
桌子
如果我破解了wp-admin/includes/image.php
文件和集合$meta[\'keywords\'] = array();
在里面wp_read_image_metadata()
, 一切正常。显然,有些代码使用了wp_read_image_metadata()
创建_wp_attachment_metadata
该附件的行。但无法插入的代码在哪里_wp_attachment_metadata
如果中存在错误编码字符串的问题$meta[\'keywords\']
?
在我的安装中是否有一个钩子可以覆盖这个问题?一个WordPress安装表明这个问题被几个极其不懂电脑的编辑器所使用。告诉他们使用电脑上的软件删除有故障的IPTC标签是不可能的。但我也不想在实时系统上破解上述核心文件。
Update: 这里有两张相同的图片,其中一张显示问题,另一张没有。唯一的区别在于“关键字”字段,其中一个字段的内容是“sweet”,另一个字段的内容是“sü223”(=德语中的sweet)。