Suite à un changement d’hébergeur pour migrer une installation multisites, je me suis retrouvé avec un comportement de WordPress assez pénible au niveau du téléchargement des images.
En effet, à chaque fois que je voulais ajouter une image dans un article ou sur une page, une erreur HTTP (HTTP error) s’affichait, laissant à penser que l’image n’était pas ajoutée au niveau de la bibliothèque des médias.
Il n’en était rien, car l’image en question était bien envoyée sur le serveur, mais sa vignette (thumbnail) n’était pas générée dans la bibliothèque des médias ni d’ailleurs toutes les tailles de l’image qui habituellement sont automatiquement créées par WordPress.
L’insertion de l’image était néanmoins possible, mais il me fallait quand même modifier le code HTML de son insertion pour supprimer les attributs de taille height et width de la balise <IMG> qui avaient pour valeurs 0, rendant l’image non visible à l’affichage.
Le problème était le même en passant par l’ajout d’image via la fonctionnalité Ajouter de la bibliothèque des médias.
Après quelques recherches sur Internet et la lecture de forums de discussions dédiés à WordPress, les solutions préconisées ne m’ont pas apporté de solution pour résoudre ce problème.
Dans ce cas de figure, qui semble assez fréquent avec WordPress, il est conseillé de :
- Réduire la taille des images avant de les insérer.
- Modifier le format de l’image de JPG en PNG ou inversement.
- Désactiver tous les plug-ins, notamment ceux qui optimisent les images à la volée.
- Changer de thème et revenir au thème par défaut.
- Accroitre la mémoire allouée à PHP en ajoutant le réglage define(‘WP_MEMORY_LIMIT’, ’64M’) dans le fichier wp-config.php.
- S’assurer qu’on dispose d’une version à jour de PHP.
- Vérifier sur le FTP que les permissions d’accès du dossier uploads sont bien réglées sur 755.
Me concernant, rien de tout cela n’a fonctionné.
Puis le hasard est intervenu quand j’ai relu un excellent tutoriel consacré à l’installation de WordPress en multisites configuré en domaines (un par site).
Il est fait mention d’un problème de téléchargement de médias qui ne fonctionne pas en configuration multisites de WordPress.
La solution qui est décrite consiste à créer (ou à modifier) un fichier .htaccess (sans oublier le point) dans le dossier /public_html/wp-content/uploads/sites/ et d’y copier le code suivant :
# uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]