Les images dans les publications WordPress, si je comprends bien, sont téléchargées manuellement. Ils sont téléchargés par défaut dans le dossier uploads
. Un de mes clients a déclaré que, sur l'un de ses sites, il avait téléchargé toutes les images au format BMP. Maintenant, il réalisa les conséquences de son erreur. Il veut les faire JPG maintenant. Et il y a 40-60 images là-bas.
Avec un éditeur de photos, je peux changer les images du dossier de téléchargement de BMP en JPG. Mais le problème est la base de données. J'ai vu que dans _postmeta
les images de la table sont stockées avec le meta_key _wp_attached_file
avec meta_value comme 2011/01/canola2.jpg
. Et la même image est aussi dans la table _posts
avec un chemin détaillé comme guid , post_type attachment
et post_mime_type image/jpeg
. Il peut donc en être de même pour les images BMP.
Alors, avec les modifications de format de fichier image dans le dossier uploads
, comment puis-je modifier en bloc la base de données pour les rendre disponibles uniquement avec une modification mineure de leur format dans la base de données? Toute requête SQL?
Ou dois-je faire le grand changement manuellement, un par un?
En supposant que vous ajoutiez les fichiers avec les noms de fichiers correspondants dans les dossiers wp-content/uploads/
appropriés, vous pouvez exécuter quelques requêtes SQL pour mettre à jour la base de données WordPress afin qu'elle utilise les fichiers .jpg
.
En supposant que votre préfixe wpdb
soit wp
, ces requêtes seraient:
UPDATE wp_posts SET post_mime_type = replace(post_mime_type, 'image/bmp','image/jpeg');
UPDATE wp_posts SET guid = replace(guid, '.bmp','.jpg');
UPDATE wp_postmeta SET meta_value = replace(meta_value, '.bmp','.jpg');
Voici un plugin qui peut accomplir cela. https://wordpress.org/plugins/better-search-replace/
Il suffit de sélectionner wp_posts
et wp_posts_meta
, de cocher la case GUID et de remplacer image/bmp
par image/jpeg
et .bmp
par .jpg
J'ai changé 5000 images en environ 20 secondes.