web-dev-qa-db-fra.com

Mettre à jour la taille de l'image jointe après l'importation

J'ai donc simplement exporté toutes les données d'une version du site et les ai importées dans une nouvelle version de ce site (à l'aide des options WP Import/Export). J'ai sélectionné la boîte pour télécharger toutes les pièces jointes.

Il les a téléchargées et a même créé les tailles d'image personnalisées appropriées existant dans le nouveau site. Toutefois, pour chaque publication, il est associé par défaut à la taille complète de l'image, plutôt qu'aux tailles que j'ai désignées pour les publications.

Ma question est la suivante: sans passer en revue chaque publication et attribuer la taille d'image appropriée, y a-t-il un moyen de régler toutes les images de la publication à une certaine taille? i.e. "Définir toutes les publications à la taille d'image personnalisée" blog-image ""

1
dtj

Je viens d'avoir ce problème ou un problème très similaire (je n'ai pas utilisé l'outil d'exportation WP, mais j'ai effectué une migration manuelle d'un environnement à un autre).

Autant que je sache, le problème provient de la manière dont WP stocke les données de vignette dans la table wp_postmeta (avec la clé '_wp_attachment_metadata'). Ces données sont sérialisées. Il est donc possible/probable que, lors de votre nouvelle importation, la longueur des méta-valeurs individuelles ait été modifiée, cassant ainsi les données sérialisées. Ma théorie est donc que c’est la raison pour laquelle WP par défaut affiche en sortie l’image standard; elle ne peut plus analyser les données.

J'ai pu résoudre ce problème en exécutant le plug-in regenerate thumbnails ( http://wordpress.org/plugins/regenerate-thumbnails/ ). Veuillez noter - pour une raison quelconque, que cela n'a fonctionné que la troisième ou la quatrième fois que j'ai essayé - très étrange - j'ai peut-être eu un problème d'autorisations qui a provoqué l'échec silencieux de la vignette au début. Cela a régénéré le champ _wp_attachment_metadata et après cela, les images correctes ont été générées.

Pour clarifier, j’ai eu la situation suivante (je pense que la vôtre est la même mais c’est bien d’être clair):

  • J'avais les déclarations 'add_image_size' pertinentes dans mon fichier de fonctions pour toutes mes tailles personnalisées
  • les fichiers eux-mêmes existaient dans le système de fichiers exactement au même chemin
  • dans mon modèle de thème, j’appelais les images en utilisant le nom personnalisé, par exemple.

    the_post_thumbnail('my-custom-name');
    

J'espère que cela t'aides.

1
Jonny Perl