Après avoir déplacé un site vers un autre domaine, toutes les images sont perdues
-
-
Cette question a-t-elle été résolue?Has this question been resolved?
- 0
- 2016-08-29
- Ethan O'Sullivan
-
Vous devez utiliser leplugin wp-migrate-dbpour cela.Unefois que vous avezexportéet importé labase de données,veuillezenregistrer unefois lesparamètresperamalinkYou should use wp-migrate-db plugin for this. Once you export and import database please save peramalink settings once
- 0
- 2018-03-05
- Malay Solanki
-
9 réponses
- votes
-
- 2014-09-04
Il semble que vous deviezmodifier les URL des anciennesimages. Leplus simple & amp; Lemoyen leplus rapide de lefaireest defaire une rechercheet un remplacement sur labase de données MySQL.
Vouspouvez utiliser PHPMyAdmin (généralementfournipar votre hébergeur) ou un autre logiciel d'édition MySQLtel que Sequel Propour apporter desmodifications à votrebase de données MySQL sanstoucher à la zone d'administration de WordPress. Cela signifie que vouspouvez apporter desmodifications àgrande échelleen exécutant des requêtes SQL au lieu de lesfaire unepar une,ce quiestfastidieuxet prend dutemps.
N'oubliezpas defaire d'abord une sauvegarde de votrebase de données. Pour cefaire dans PHPMyAdmin,sélectionnez votrebase de données dans labarre latérale àgauche,puis cliquez sur «Exporter». Laméthode "Simple"esttrèsbien,mais si vous voulezplus de contrôle surelle,laméthode "Personnalisé" vous offre denombreuses options.
Après avoireffectué votre sauvegarde,cliquez sur l'onglet SQLet collez ce qui suit dans la zone detexte:
UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newurl') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'oldurl','newurl'); UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newurl'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'oldurl','newurl');
Et remplacez "oldurl"par votre ancienne URLet "newurl"par votrenouvelle URL,en conservant http://maisen supprimant lesbarres obliques defin. Vérifiez-le deuxfois,puis lorsque vous êtes satisfait,cliquez sur lebouton OK.
Accédez à votre siteet vérifiez si vosimagesfonctionnent. Sinon,c'estgénéralement à cause d'unefaute defrappe,que vouspouvez corrigeren restaurant labase de données àpartir de la sauvegarde que vous avezeffectuée au début duprocessuset en réessayant.
Ilexiste unguide détaillé de lamigration de domaine WordPress sur ce site ,qui a également un lien vers un scriptpourgénérer la requête SQLpour vous.
It sounds like you need to change the URLs for the old images. The easiest & quickest way of doing that is to do a find and replace on the MySQL database.
You can use PHPMyAdmin (usually provided by your web host) or other MySQL editing software such as Sequel Pro to make changes to your MySQL database without touching the WordPress admin area. This means you can make wide-scale changes by running SQL queries instead of making them one-by-one, which is tedious and time-consuming.
Remember to take a backup of your database first. To do this in PHPMyAdmin, select your database from the sidebar on the left, then click "Export". The "Simple" method is fine, but if you want more control over it then the "Custom" method gives you plenty of options.
After taking your backup, click on the SQL tab and paste the following into the textarea:
UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newurl') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'oldurl','newurl'); UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newurl'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'oldurl','newurl');
And replace "oldurl" with your old URL and "newurl" with your new URL, keeping the http:// but removing trailing slashes. Double check it, then when you're happy with it, click the Go button.
Navigate over to your site and check whether your images are working. If not, it's usually because of a typo, which you can fix by restoring the database from the backup you made at the beginning of the process and trying again.
There's a expanded guide to WordPress domain migration at this site, which also has a link to a script to generate the SQL query for you.
-
Une réponse doit êtreplus qu'un simple lien.C'estjuste à lafrontière,mais assurez-vous de revoir ["Comment écrire unebonne réponse?"] (Http://wordpress.stackexchange.com/help/how-to-answer): "Les liens vers des ressourcesexternes sontNous vousencourageons à ajouter du contexte autour du lien afin que vos collègues utilisateurs aient uneidée de ce que c'estet pourquoiilest là. Citeztoujours lapartie lapluspertinente d'un lienimportant,au cas où le site cible seraitinaccessible ou serait définitivement hors ligne. "An answer should be more than just a link. This is right on the border, but make sure to review ["How do I write a good answer?"](http://wordpress.stackexchange.com/help/how-to-answer): "Links to external resources are encouraged, but please add context around the link so your fellow users will have some idea what it is and why it’s there. Always quote the most relevant part of an important link, in case the target site is unreachable or goes permanently offline."
- 1
- 2014-09-04
- mrwweb
-
- 2014-09-04
Si votre siteest assezpetit,vouspouvez ...
- Connectez-vous àphpMyAdmin.
- Exportez votrebase de données sousforme defichier SQL.
- Faites une copie de votrefichier SQL debase de données afin d'avoir une sauvegarde de votrebase de données d'origine,au cas où vousferiez uneerreur
- Ouvrez votrefichier SQL debase de données dans un éditeur detexte.
- Recherchezet remplacez
domain1.com
pardomain2.com
. - Enregistrez lefichier SQL de votrebase de données.
- Reconnectez-vous àphpMyAdmin.
- Importez votrefichier SQL debase de données.
MODIFIER 18/03/2016
APRÈS avoireffectué les étapes ci-dessus,veuillez suivre laprocédure suivante:
Étape 1 - Créez unefonction à utiliser.
function mbe_migrate_widgets() { }
Étape 2 - Spécifiez les éléments à rechercheret les éléments à remplacer.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; }
Étape 3 - Récupéreztous les widgets WordPress.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; global $wpdb; // Get all Widgets $widgets = $wpdb->get_results( " SELECT `option_id`, `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%widget_%' " ); }
Étape 4 - Parcoureztous les widgets WordPresset récupérez lesinformationspour chaque widget.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; global $wpdb; // Get all Widgets $widgets = $wpdb->get_results( " SELECT `option_id`, `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%widget_%' " ); if ( ! $widgets ) { return false; } $actions = array(); foreach ( $widgets as $widget ) { // Retrieve the Widget data. $widget_data = get_option( $widget->option_name ); } return $actions; }
Étape 5 - Effectuer la rechercheet remplacer les données du widgetet mettre àjour lesenregistrements de labase de données.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; global $wpdb; // Get all Widgets $widgets = $wpdb->get_results( " SELECT `option_id`, `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%widget_%' " ); if ( ! $widgets ) { return false; } $actions = array(); foreach ( $widgets as $widget ) { // Retrieve the Widget data. $widget_data = get_option( $widget->option_name ); // Update the Widget data changing old domain to new domain. $update = update_option( $widget->option_name, recursive_array_replace( $old_domain, $new_domain, $widget_data ) ); if ( $update ) { $actions['success'][] = $widget->option_id; } else { $actions['failed'][] = $widget->option_id; } } return $actions; }
Étape 6 - Incluez lafonction de remplacement detableau récursifpersonnalisé.
// Recursive String Replace - recursive_array_replace(mixed, mixed, array); function recursive_array_replace( $find, $replace, $array ) { if ( ! is_array( $array ) ) { return str_replace( $find, $replace, $array ); } $newArray = array(); foreach ( $array as $key => $value ) { $newArray[ $key ] = recursive_array_replace( $find, $replace, $value ); } return $newArray; }
Voilà. Exécutez cettefonction unefoiset tous vos widgets devraient recommencer àfonctionner commeparmagie.
Remarque: C'est à vous de décider où vousplacez ce code ou comment vous l'exécutez. Veuillez également remplacer les variables
$old_domain
et$new_domain
en conséquence.Remarque supplémentaire: Veuillez égalementgarder à l'esprit que cetexemplene concerne que les widgets. Si d'autresparties de votre site Web contiennent des URL dans des données sérialisées,veuillezmodifier votre requête debase de donnéesen conséquence. (Jeparle de cettepartie du code:
SELECT option_id, option_name FROM $wpdb->options WHERE option_name LIKE '%widget_%'
)Jepublierais un lien versmonblog àpropos de ce sujet,maisje ne souhaitepas apparaître comme "spam". Il s'agitessentiellement d'un copier/coller d'un article quej'ai écrit surmon site Web le 18/03/2016 . Le contenu de cette réponsepeut devenir obsolèteet le contenu de l'article surmon site Webpeut devenirpluspertinent à l'avenir. S'il vousplaît,si vous êtesintéressé,vérifiezmonprofilpour un lien versmon site Web.
Explication utile des données sérialisées: Anatomie d'une valeur serialize () 'ed .
If your site is fairly small, you could...
- Log into phpMyAdmin.
- Export your database as an SQL file.
- Make a copy of your database SQL file so you have a backup of your original database, in-case you screw up.
- Open up your database SQL file in a text editor.
- Find and replace
domain1.com
withdomain2.com
. - Save your database SQL file.
- Log back into phpMyAdmin.
- Import your database SQL file.
EDIT 03/18/2016
AFTER you've done the above steps, please proceed with the following procedure:
Step 1 – Create a function to use.
function mbe_migrate_widgets() { }
Step 2 – Specify what to search for and what to replace with.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; }
Step 3 – Retrieve all WordPress widgets.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; global $wpdb; // Get all Widgets $widgets = $wpdb->get_results( " SELECT `option_id`, `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%widget_%' " ); }
Step 4 – Loop through all WordPress widgets, and retrieve the information for each widget.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; global $wpdb; // Get all Widgets $widgets = $wpdb->get_results( " SELECT `option_id`, `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%widget_%' " ); if ( ! $widgets ) { return false; } $actions = array(); foreach ( $widgets as $widget ) { // Retrieve the Widget data. $widget_data = get_option( $widget->option_name ); } return $actions; }
Step 5 – Perform the search and replace on the widget data and update the database records.
function mbe_migrate_widgets() { $old_domain = 'http://dev.'; $new_domain = 'http://beta.'; global $wpdb; // Get all Widgets $widgets = $wpdb->get_results( " SELECT `option_id`, `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%widget_%' " ); if ( ! $widgets ) { return false; } $actions = array(); foreach ( $widgets as $widget ) { // Retrieve the Widget data. $widget_data = get_option( $widget->option_name ); // Update the Widget data changing old domain to new domain. $update = update_option( $widget->option_name, recursive_array_replace( $old_domain, $new_domain, $widget_data ) ); if ( $update ) { $actions['success'][] = $widget->option_id; } else { $actions['failed'][] = $widget->option_id; } } return $actions; }
Step 6 – Include custom recursive array replacement function.
// Recursive String Replace - recursive_array_replace(mixed, mixed, array); function recursive_array_replace( $find, $replace, $array ) { if ( ! is_array( $array ) ) { return str_replace( $find, $replace, $array ); } $newArray = array(); foreach ( $array as $key => $value ) { $newArray[ $key ] = recursive_array_replace( $find, $replace, $value ); } return $newArray; }
There you have it. Run that function once and all of your widgets should magically start working again.
Note: It's up to you where you place this code or how you execute it. Please also replace the variables
$old_domain
and$new_domain
accordingly.Extra Note: Please also keep in mind, this example only effects widgets. If you have other parts of your website which contain URLs in serialized data, please modify your database query accordingly. ( I'm talking about this portion of the code:
SELECT option_id, option_name FROM $wpdb->options WHERE option_name LIKE '%widget_%'
)I would post a link to my blog about this topic, but don't wish to appear "spammy". This is essentially a copy/paste from an article I wrote on my website as of 03/18/2016. The contents in this answer might become outdated and the content in the article on my website may become more relevant in the future. Please, if you're interested, check my profile for a link to my website.
Useful explanation of serialized data: Anatomy of a serialize()'ed value.
-
Nefaispas ça!Certainsparamètres sont corrompusen faisant cela!Si vous stockez untableau dans Wordpress,ils sont stockés dans une syntaxetelle que celle-ci: a: 1: {i: 0; s: 6: "setting"}.Lesnombres représentent la longueur de la chaîne (1tableau,0ème clé,chaîne de longueur 6),donc si vouspassez demysite.com àmynewsite.com,la longueurne correspondrapas,ce qui corrompra letableau.Don't do this! Some settings get corrupted by doing this! If you store an array in Wordpress, they get stored in a syntax such like this: a:1:{i:0;s:6: "setting"}. The numbers represent the lenght of the string (1 array, 0th key, string with lenght of 6), so if you change from mysite.com to mynewsite.com, the lenght will not match up, making the array corrupt.
- 0
- 2016-03-18
- Jeroen
-
@Jeroen J'aimis àjourma réponseen ce qui concerne les données sérialisées.J'espère que celat'aides.@Jeroen I've updated my answer in regards to the serialized data. Hope this helps.
- 0
- 2016-03-19
- Michael Ecklund
-
- 2014-09-05
Au risque de répondre à la question avec seulement un lien,je pense que les étapes suivantes sur cettepage ( http://codex.wordpress.org/Moving_WordPress ) sont ce que vous recherchez:
Modification de votrenom de domaineet de vos URL
Vous devez remplacertoutes lesinstances de votre anciennom de domainepar votrenouveaunom de domaine dans labase de donnéesen toute sécurité. Vouspouvez lefaireen utilisant l'une desméthodes suivantes:
-
Effectuez une rechercheet un remplacement uniquement sur latable wp_posts.
-
Utilisez le Script de rechercheet de remplacement debases de données WordPress pouren toute sécurité changertoutes lesinstances. (Si vous êtes développeur,utilisez cette option. est unprocessusen une étapepar opposition à laprocédureen 15 étapes ci-dessous)
-
En option,vouspouvez également utiliser un outilen ligne (au cas où vousne voudriezpas prendre lapeine detélécharger des scripts sur votre serveur) WordPressen ligne Rechercheet remplacement PHP sérialisés quipermet de remplacer un ancien domaine ou URL avec unnouveautouten corrigeant les données sérialisées au en mêmetemps.
Cettepage contient également denombreuses autresinformations utiles sur lamigration WP.
At the risk of answering the question with only a link, I think the following steps at this page (http://codex.wordpress.org/Moving_WordPress) are what you're looking for:
Changing Your Domain Name and URLs
You need to change all instances of your old domain name to your new domain name in the database safely. You can do that using one of the following:
Only perform a search and replace on the wp_posts table.
Use the Search and Replace for WordPress Databases Script to safely change all instances. (If you are a developer, use this option. It is a one step process as opposed to the 15-step procedure below)
Optionally, you can also use an online tool (in case you don't want to bother with uploading scripts to your server) Online WordPress Serialized PHP Search and Replace which allows for replacing an old domain or URL with a new one while fixing the serialized data at the same time.
There's a lot of other helpful WP migration information on that page as well.
-
- 2016-06-28
On dirait que vous avezpeut-être déjà votre réponse,maisje vous recommandefortement d'utiliser DBSR (db search replace)pour remplacer TOUTES les occurrences de domain1par domain2.Ilexiste des outilspour cela.Celui-ciest assezpropre: https://github.com/interconnectit/Search-Replace-DB
L'ensemble duprocessusest décrit.Ilexiste unebonneinterface utilisateur.
De cettefaçon,vous serez sûr quetout vabien en ce qui concerne lesenregistrements DB.
Sounds like you might already have your answer but I strongly recommand you to use DBSR (db search replace) to replace ALL occurrences of domain1 by domain2. There are tools for that. This one is pretty clean : https://github.com/interconnectit/Search-Replace-DB
The whole process is described. There is a good UI.
This way you'll be sure everything is ok regarding DB records.
-
- 2016-08-29
Bien que vous disiez que vous avezmis àjour vos données
wp_posts
verswww.domain2.com
,il y atoujourshome
etsiteurl
dans votretablewp_options
qui doit être changéparmi d'autres choses.Pour vous assurer quetoutes vos données ont étémises àjour vers votrenouveau domaine,veuillez suivre les étapes suivantes:
- Téléchargez Recherche debase de données d'Interconnect IT & amp; Remplacez le scriptici
- Décompressez lefichieret déposez le dossier (via FTP) où votre WordPressestinstallé (la racine)et renommez le dossieren
replace
( capture d'écran ) - Accédez aunouveau dossier que vous avez créé dans votrenavigateur (parexemple:
http://www.domain2.com/replace
)et vous verrez l'outil de recherche/remplacement - Cela devrait être assezexplicitejusqu'àprésent: saisissez votre ancienne URL dans le champ
rechercher…
et lanouvelle URL dans leremplacerpar le champ…
Vouspouvez cliquer sur lebouton essai sous actions pour voir ce qu'il remplacera avant d'exécuter le script. Unefois que vous avezterminé,assurez-vous de supprimer le dossier
/replace/
.Although you say that you've updated your
wp_posts
data towww.domain2.com
, there is still thehome
andsiteurl
in yourwp_options
table that needs to be changed amoung other things.To ensure all of your data has been updated to your new domain, please go through the following steps:
- Go and download Interconnect IT's Database Search & Replace Script here
- Unzip the file and drop the folder (via FTP) where your WordPress is installed (the root) and rename the folder to
replace
(screenshot) - Navigate to the new folder you created in your browser (ex:
http://www.domain2.com/replace
) and you will see the search/replace tool - It should be pretty self-explanatory up to this point: enter your old URL in the
search for…
field and the new URL in thereplace with…
field
You can click the dry run button under actions to see what it will be replacing before you execute the script. Once you're done be sure to remove the
/replace/
folder. -
- 2018-03-05
méthodetrès simple
Installez ceplugin Velvet dans votrebackend wordpress.
Maintenant,accédez auparamètre Velvet,entrez votre ancien domaineet entrez unnouveau domaine.appuyez sur lebouton demise àjour.Vous avezterminé
very easy method
Install this plugin Velvet into your wordpress backend.
Now go to the velvet setting and enter your old domain and enter new domain. hit update button. You are done
-
- 2018-03-05
Utilisez WP Migrate DB pourexporter les donnéeszipbasé sur remplacer votre URL.
en utilisant ceplugin,vousne pouvezpasperdre de widget ou de sérialiser des données.
Use WP Migrate DB for export data based zip with replace your url.
using this plugin you can not lost widget or any serialize data.
-
- 2016-08-29
Unefois dans le cPanel,recherchez la catégorie Bases de donnéeset cliquez sur l'icône de l'outilphpMyAdmin. Vous êtesmaintenant sur lapageprincipale dephpMyAdmin.Trouvez labase de donnéesnouvellement ajoutéeet cliquez sur sonnom dans labarre latéralegauche.Notreexemple debase de données s'appelletestdb. Cela ouvre labase de donnéeset l'écran s'actualise avec une liste destables.En utilisant ànouveau labarre latérale,recherchezet cliquez sur letableau wp-posts. Regardezen haut de l'écranet vous verrezplusieurs onglets quitraversent lapage.Cliquez sur l'onglet SQL. Vous êtesmaintenant sur un écran de l'éditeur MySQL.Dans la zone de code,copiez lebit suivant de MySQL.
UPDATE wp_posts SET post_content=(REPLACE (post_content, 'dommain1.com','domain2.com'));
Celapourraitfonctionner?
Once inside the cPanel, find the Databases category and click on the phpMyAdmin tool icon. You are now on the main phpMyAdmin page. Find the newly added database and click on its name from the left-hand sidebar. Our sample database is named testdb. This opens the database and the screen refreshes with a list of the tables. Using the sidebar again, find and click on the wp-posts table. Look to the top of the screen and you will see several tabs that run across the page. Click on the SQL tab. You are now on a MySQL editor screen. In the code area, copy the following bit of MySQL.
UPDATE wp_posts SET post_content=(REPLACE (post_content, 'dommain1.com','domain2.com'));
Might work ?
-
En quoiest-ce différent de l '[autre réponse] (http://wordpress.stackexchange.com/a/160226/7355)?Il y aplus de références à desimages dans labase de données qu'au contenu de l'article.How is this different than the [other answer](http://wordpress.stackexchange.com/a/160226/7355)? There's more references to images in the database than just the post content.
- 0
- 2016-08-29
- Howdy_McGee
-
- 2015-07-28
Salut si vous êtes unebase de données awaire,utilisez ces étapes.
- Connectez-vous àphpMyAdmin.
- Exportez votrebase de données sousforme defichier SQL.
- Faites une copie de votrefichier SQL debase de donnéespour avoir une sauvegarde de votrebase de données d'origine,au cas où vousferiez uneerreur.
- Ouvrez votrefichier SQL debase de données dans un éditeur detexte.
- Recherchezet remplacez domain1.compar domain2.com.
- Enregistrez lefichier SQL de votrebase de données.
- Reconnectez-vous àphpMyAdmin.
- Importez votrefichier SQL debase de données.
hi if you are awaire database than use these steps.
- Log into phpMyAdmin.
- Export your database as an SQL file.
- Make a copy of your database SQL file so you have a backup of your original database, in-case you screw up.
- Open up your database SQL file in a text editor.
- Find and replace domain1.com with domain2.com.
- Save your database SQL file.
- Log back into phpMyAdmin.
- Import your database SQL file.
J'ai déménagé de
www.domain1.com
verswww.domain2.com
Cependant,les chemins de l'imagepointenttoujours vers
www.domain1.com/wp-content/uploads...
.Ainsi,lorsquewww.domain1.com
esttombéen panne,toutesmesimagesne s'affichentplus.J'aimis àjour latable
wp_posts
oùtoutes lespiècesjointespointent désormais verswww.domain2.com/wp-content/uploads...
,mais lesimagesexistent danswww.domain2.com
et jene voistoujours aucuneimage.Mamiseen cacheest-elle désactivée?