如果IPTC关键字中有特殊字符,则上传的图像不会显示在媒体库中

时间:2016-01-20 作者:z80crew

有些上传到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)。

image that does not workworking image

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

我用我自己用Photoshop创建的一幅图像对此进行了测试,我在每个可思考的IPTC领域中插入了“Süss”一词。

我把它上传到我的WordPress 4.6安装中,它没有安装图像处理插件。上传过程顺利,在uploads目录中创建了正确的缩略图,并从相应的IPTC字段中正确加载了标题字段。

此外,缩略图也在媒体库中正确显示。

所以我倾向于说indeed a bug 自那以后,这一问题就得到了解决。

SO网友:Mat

文件名中的特殊字符(在我的例子中是“-”)似乎也出现了问题。这至少发生在我身上,我从未编辑过进出口银行的信息,所以它不仅与IPTC领域有关。在编辑文件名并删除重音后,它现在可以正常工作。

最奇怪的是,知道经常遇到编码问题,我找不到任何帖子或文档说在wordpress库文件名中不能接受或应该避免使用特殊字符。不过,鉴于人们有很多问题,建议永远不要使用任何。。。或者让wordpress来解决这个问题。如果发现任何spechar都可以强制使用干净的名称,并且没有进一步问题的风险,那么可能至少上传失败。

希望这对别人有帮助。字符编码在计算机科学中总是一团糟。。。叹气

相关推荐

无法扩展wp.media.view.AttachmentsBrowser

这里是WP开发的新手,如果我遗漏了一些简单的东西,请原谅我。。。我正在为媒体上载库编写一个插件,它需要在网格视图中获取选定的媒体项(用于拖放)。我知道媒体网格中的项目是动态生成的,所以我尝试扩展AttachmentsBrowser,并在initialize(). 然而initialize() 从未调用。!function(e) { var i = { init: function() { console.log("This is ca