Некоторые изображения, загруженные в 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üß» (= немецкое слово для сладкого).