Algumas imagens enviadas para o WordPress não aparecem na Biblioteca de mídia. As imagens são carregadas e até cortadas nos tamanhos definidos; há uma entrada na Biblioteca de mídia, mas a imagem de visualização não é exibida. Posso até usá-los como uma imagem em destaque e eles aparecem corretamente no meu site.
Consegui encontrar a causa do problema: se houver caracteres especiais (como tremados alemães) no campo "Palavras-chave" do IPTC nos JPGs, esse problema ocorre. Assim que eu uso o Exiftool para remover o campo "Palavras-chave" de um JPG que mostra os problemas mencionados, esse arquivo funciona sem problemas. Eu pude verificar esse problema em três instalações do WordPress em dois servidores web completamente diferentes hospedados por empresas diferentes. A versão do Wordpress é 4.4.1
.
Estou inclinado a relatar isso como um bug do WordPress. Mas antes de fazer isso, quero resolver o problema real ainda mais. Eu pude descobrir que, para todas as imagens "ruins", não há _wp_attachment_metadata
entrada na wp_postmeta
tabela.
Se eu invadir o wp-admin/includes/image.php
arquivo e configurá $meta['keywords'] = array();
-lo wp_read_image_metadata()
, tudo funcionará bem. Obviamente, há algum código que usa o resultado wp_read_image_metadata()
para criar uma _wp_attachment_metadata
linha para esse anexo. Mas onde está o código que falha ao inserir _wp_attachment_metadata
se houver um problema com cadeias codificadas incorretamente $meta['keywords']
?
E existe um gancho para substituir esse problema em minhas instalações? Uma instalação do WordPress que mostra que esse problema é usado por vários editores que não têm muita experiência com computadores. Dizer a eles para usar um software em seu PC para remover as tags IPTC defeituosas é inútil. Mas também não quero invadir o arquivo principal mencionado em um sistema ativo.
Atualização: Aqui estão duas imagens idênticas em que uma mostra o problema e a outra não. A única diferença está no campo "keywords", onde um tem o conteúdo "sweet", o outro "süß" (= palavra alemã para sweet).
Respostas:
Eu testei isso com uma imagem que me criei no Photoshop, onde inseri a palavra "Süss" em todos os campos possíveis do IPTC.
Fiz o upload para minha instalação do WordPress 4.6, que não possui plug-ins de manipulação de imagem instalados. O upload ocorreu sem problemas, as miniaturas corretas foram criadas no diretório de uploads e o campo de legenda foi carregado corretamente no campo IPTC correspondente.
Além disso, a miniatura foi exibida corretamente na biblioteca de mídia.
Então, estou inclinado a dizer que esse foi realmente um bug que foi resolvido desde então.
fonte
O problema parece estar ocorrendo com caracteres especiais ("-", no meu caso) também nos nomes de arquivos. Aconteceu comigo pelo menos e eu nunca editei informações exif, portanto, não estão relacionadas apenas ao campo IPTC. Agora funciona como esperado após editar o nome do arquivo, removendo o sotaque.
O mais estranho é que, sabendo que os problemas de codificação são frequentemente encontrados, não consigo encontrar nenhum post ou documento dizendo que caracteres especiais não sejam aceitáveis ou que devam ser evitados nos nomes de arquivos da biblioteca do wordpress. ... ou peça ao wordpress para trabalhar nisso. Talvez, pelo menos, apenas falhe nos envios se for encontrado algum spechar para impor nomes limpos e sem risco de problemas adicionais.
Espero que isso ajude alguém. A codificação de caracteres sempre foi uma bagunça na ciência da computação ... suspiro ...
fonte