Je viens de transférer une installation WordPress du domaine vers mon hôte local. J'ai suivi toutes les étapes habituelles: copier des fichiers, exporter une base de données et remplacer domain.com
par localhost
, mettre à jour wp-config.php
et actualiser les liens permanents. Toutes les pages et les règles de réécriture personnalisées fonctionnent, mais certaines images donnent un 404.
Lorsque je vérifie ces images sur le domaine réel, tout fonctionne correctement, mais quelque chose ne va pas; Si je vérifie l'URL de l'image, celle-ci pointe vers ce chemin:
http://domain.com/wp-content/uploads/2013/08/IMG_0425-185x185.jpg
Mais ce fichier n'existe pas! J'ai regardé dans le dossier uploads via FTP et le fichier n'existe pas, seul le IMG_0425-185x185-150x150.jpg
existe. Notez que 185x185
fait partie du nom de fichier d'origine, mais 150x150
est ajouté par WP.
Dans localhost, l'image n'apparaît pas (404), ce qui est logique.
Pourquoi l'image apparaît-elle sur le domaine alors qu'elle n'existe même pas? WordPress résout-il l'image en une vignette générée? Pourquoi ça ne marche pas sur le localhost si c'est le cas?
Modifier:
C'est ce qui n'a aucun sens. Comment est-ce possible? Peut-être que la cache a quelque chose à faire?
Comme vous ne pouvez voir aucune trace de IMG_0425-185x185.jpg
dans le dossier (??) mais IMG_0425-185x185-150x150.jpg
existe.
Changer les home
et siteurl
dans votre table wp_options
ne suffit malheureusement pas. Votre contenu de publication avec votre URL non-hôte local (http://domain.com
) restera toujours tel que votre site Web ne s'affichera pas correctement sur votre hôte local.
Une fois que vous avez téléchargé et importé votre base de données sur votre localhost. Suivez ces étapes:
replace
( screenshot )http://localhost/wordpress/replace
) et vous verrez l'outil de recherche/remplacementsearch for…
et la nouvelle URL dans le champreplace with…
Vous pouvez cliquer sur le bouton exécution à sec sous actions pour voir ce qu'il va remplacer avant d'exécuter le script. Une fois que vous avez terminé, veillez à supprimer le dossier /replace/
.
Peut-être que ce sont des autorisations. Accédez au dossier wp-content dans la console et tapez:
chmod -R 767 uploads
Si ce n'est pas dans votre client FTP - donc pas sur votre serveur - cela ne va pas apparaître sur votre site. Donc, c’est presque certainement une chose mise en cache dans votre navigateur, avez-vous essayé de le nettoyer ou d’actualiser votre disque dur? La réécriture de WordPress ne retombera pas sur la vignette si l'image d'origine n'y est pas. le .htaccess
chargera simplement le index.php
qui lancera un 404.
L'autre chose que je voudrais vérifier est de m'assurer que l'URL pointe bien là où vous pensez. WordPress stocke tous ses liens d'image sous forme d'URL absolue dans la base de données. Et sauf si vous effectuez une recherche + un remplacement lorsque vous transférez un site, celui-ci ne sera pas mis à jour. Vous avez dit que vous déplaciez le site et qu'il est fort possible que vous chargiez l'image à partir d'un serveur plus ancien.