Загруженные изображения не отображаются в медиатеке, если в ключевых словах IPTC есть специальные символы

8

Некоторые изображения, загруженные в WordPress, не отображаются в библиотеке мультимедиа. Изображения загружаются и даже обрезаются до определенных размеров, в медиатеке есть запись, но изображение для предварительного просмотра не отображается. Я даже могу использовать их в качестве рекомендуемого изображения, и они правильно отображаются на моем сайте.

Мне удалось найти причину проблемы: если в поле «Ключевые слова» в JPG есть специальные символы (например, немецкие умляуты), то эта проблема возникает. Как только я использую Exiftool для удаления поля «Ключевые слова» из JPG, в котором отображаются упомянутые проблемы, этот файл работает без проблем. Я мог проверить эту проблему на трех установках WordPress на двух совершенно разных веб-серверах, размещенных в разных компаниях. Версия Wordpress есть 4.4.1.

Я склонен сообщать об этом как об ошибке WordPress. Но прежде чем я сделаю это, я хочу еще раз решить настоящую проблему. Я обнаружил, что для всех «плохих» изображений _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 - это не пойдет. Но я также не хочу взламывать упомянутый файл ядра в реальной системе.

Обновление: вот два идентичных изображения, где одно показывает проблему, другое нет. Единственное отличие заключается в поле «ключевые слова», где одно имеет содержание «сладкий», а другое - «süß» (= немецкое слово для сладкого).

изображение, которое не работает рабочее изображение

z80crew
источник
Насколько я помню, стандартного кодирования для полей IPTC не существует, на самом деле это может быть что угодно, что довольно беспорядочно. Однако +1 за вопрос. Можете ли вы предоставить пример изображения для проверки этого поведения?
Дэвид
2
Похоже, ошибка WordPress для меня. Я думаю, что вы можете сообщить об этом как есть.
MikeNGarrett
Я думаю, что это может быть исправлено в WordPress 4.4.2: core.trac.wordpress.org/ticket/35316
JD
2
@ z80crew Можете ли вы повторить это исправление, как описано выше? Если это так, пожалуйста, не стесняйтесь добавлять ответ и пометить как принятый :)
Тим Мэлоун
Решило ли это исправление основной ошибки? Как говорит @TimMalone, добавление и принятие ответа поможет нам поддерживать порядок в WPSE. Спасибо.
Энди Маколей-Брук,

Ответы:

2

Я проверил это с помощью изображения, созданного мной в Фотошопе, где я вставил слово «Süss» в каждое мыслимое поле IPTC.

Я загрузил его в мою установку WordPress 4.6, в которой не установлены плагины для обработки изображений. Загрузка прошла гладко, правильные миниатюры были созданы в каталоге загрузки, и поле заголовка было загружено правильно из соответствующего поля IPTC.

Также миниатюра правильно отображалась в медиатеке.

Итак, я склонен сказать, что это действительно была ошибка , которая была решена с тех пор.

cjbj
источник
0

Похоже, проблема возникает со специальными символами (в моем случае "â") в именах файлов. По крайней мере, это случилось со мной, и я никогда не редактировал exif-информацию, так что она относится не только к области IPTC. Теперь он работает, как и ожидалось, после редактирования имени файла и удаления акцента.

Самое странное, что, зная, что проблемы с кодировкой часто встречаются, я не могу найти ни одного поста или документа, говорящего о том, что специальные символы недопустимы или их следует избегать в именах файлов библиотеки WordPress, хотя, учитывая множество проблем, с которыми сталкиваются люди, было бы целесообразно никогда не использовать какие-либо ... или попросить WordPress поработать над этим. Может быть, по крайней мере, просто неудачные загрузки, если найден какой-либо spechar для обеспечения чистых имен и нет риска для дальнейшей проблемы.

Надеюсь, это кому-нибудь поможет. Кодирование символов всегда было таким беспорядком в информатике ... вздох ...

Мат
источник