web-dev-qa-db-fra.com

Obtenir des vignettes vierges dans la bibliothèque multimédia?

Je lance une installation multisite avec 10 blogs. Tous les autres blogs fonctionnent correctement, sauf celui où les images téléchargées n'apparaissent pas dans la médiathèque. Il y a juste une image vierge au lieu de la vignette habituelle.

  • En cliquant sur "Modifier", vous accédez à la page "Modifier le média", mais AUCUNE image ne s'affiche.

  • Copiez l'URL du fichier dans la zone "Enregistrer" située à droite de la page "Modifier le média" et collez-le dans la barre d'adresse du navigateur pour afficher l'image.

  • En cliquant sur "Affichage" dans la "Médiathèque", vous accédez à une page, mais AUCUNE image ne s'affiche.

Je ne peux pas comprendre cela parce que ce blog a été installé de la même façon que les autres.

Je me suis assuré que:

  1. Les autorisations de fichier sont définies sur 755 pour tous les dossiers et fichiers.
  2. Les images sont téléchargées dans le dossier approprié wp-content/uploads/sites/"dossier du site"/"année"/"mois"
  3. Désactiver tous les plugins et réactiver chacun pour voir s'ils causent des problèmes
  4. Désinstallé et réinstallé le blog particulier.

La seule chose que je n'ai pas essayée a été de faire quelque chose directement dans la base de données, mais je ne sais pas par où commencer.

2
MasterKong

J'ai eu un problème très similaire, sur un multisite avec 8 blogs (2 d'entre eux).

Dans mon cas, j'ai découvert que la meta_value "_wp_attachment_metadata" de certaines images était corrompue dans la table wp_xx_postmeta . C'est probablement dû à un plugin, car la dernière chose que j'ai faite avant ce problème a été de supprimer plusieurs plugins inutilisés. Mais les réinstaller ne l'a pas résolu ...

En bref, j'ai récupéré les meta_value (s) d'une ancienne sauvegarde de base de données contenant les valeurs correctes.

Voici ce que j'ai fait:

0 - Tout d'abord, j'ai importé le fichier SQL de la vieille base de données dans une base de données séparée, afin d'utiliser les deux bases de données simultanément sur le serveur MySQL.

1 - Sélectionne les identifiants de toutes les pièces jointes dans wp_xx_posts à partir de ancienne base de données

SELECT * FROM wp_xx_posts where post_type='attachment';

où "xx" est le numéro du blog avec le problème.

2 - Sélectionné tous les meta_id et meta_value dans wp_xx_postmeta pour les pièces jointes à partir de ancienne base de données :

Select meta_id, meta_value from wp_xx_postmeta where meta_key = '_wp_attachment_metadata' and (post_id = 111 or post_id = ...);

Pour tous les identifiants d'image. En copiant/collant/remplaçant les données entre une feuille de calcul Excel et le bloc-notes, il est facile de créer la requête pour tous les identifiants.

3 - Création d'un fichier SQL avec les mises à jour de wp_xx_postmeta à importer dans la base de données CURRENT . Ce fichier peut être un peu volumineux, et chaque ligne ressemblerait à quelque chose comme:

UPDATE wp_xx_postmeta set meta_value = 'a:5:...a large serialized bunch of data' WHERE meta_id = 111;
UPDATE wp_xx_postmeta set ...

Pour toutes les images. Encore une fois en utilisant Excel/Notepad.

4 - Puis j'ai exécuté le fichier SQL en utilisant mysql -u root -p current_database < sqlfile.sql

Lorsque j'ai rechargé le site, toutes les vignettes et toutes les images fonctionnaient correctement dans la médiathèque.

1
Moabdib