Alcune immagini caricate su WordPress non vengono visualizzate nel Catalogo multimediale. Le immagini vengono caricate e persino ritagliate nelle dimensioni definite, è presente una voce nel Catalogo multimediale, ma l'immagine di anteprima non viene visualizzata. Posso persino usarli come immagine in primo piano e vengono visualizzati correttamente sul mio sito Web.
Sono stato in grado di trovare la causa del problema: se ci sono caratteri speciali (come le umlaut tedesche) nel campo "Parole chiave" IPTC negli JPG, allora si verifica questo problema. Non appena utilizzo Exiftool per rimuovere il campo "Parole chiave" da un JPG che mostra i problemi citati, questo file funziona senza problemi. Ho potuto verificare questo problema su tre installazioni di WordPress su due server Web completamente diversi ospitati da società diverse. La versione di Wordpress è 4.4.1
.
Sono propenso a segnalarlo come un bug di WordPress. Ma prima di farlo, voglio inchiodare ulteriormente il vero problema. Ho trovato che per tutte le immagini "cattive", non c'è _wp_attachment_metadata
voce nella wp_postmeta
tabella.
Se io hackerare il wp-admin/includes/image.php
file e impostare $meta['keywords'] = array();
in wp_read_image_metadata()
, tutto funziona bene. Ovviamente c'è da qualche parte un codice che utilizza il risultato da wp_read_image_metadata()
per creare una _wp_attachment_metadata
riga per quell'allegato. Ma dov'è quel codice che non riesce a inserire _wp_attachment_metadata
se c'è un problema con stringhe erroneamente codificate $meta['keywords']
?
E c'è un gancio per ovviare a questo problema nelle mie installazioni? Un'installazione di WordPress che mostra che il problema è utilizzato da diversi editor che sono estremamente sfavoriti dal computer. Dire loro di utilizzare un software sul proprio PC per rimuovere i tag IPTC difettosi è un non-andare. Ma non voglio nemmeno hackerare il file core menzionato su un sistema live.
Aggiornamento: qui ci sono due immagini identiche in cui una mostra il problema, l'altra no. L'unica differenza è nel campo "parole chiave", dove uno ha il contenuto "dolce", l'altro "süß" (= parola tedesca per dolce).