web-dev-qa-db-fra.com

Corrigez les requêtes de recherche et de remplacement pour modifier les URL dans une base de données WordPress?

Avoir développé un site sur la boîte de production en utilisant une adresse temporaire ( http: // IP-adddress ).

Maintenant il est temps d'aller vivre. Une fois, il y a bien longtemps, j'ai utilisé avec succès phpMyAdmin et effectué une recherche/remplacement, mais je me demande s'il reste toujours "le meilleur" chemin à parcourir.

Est-ce que ça va marcher, toujours? Le site est dans WordPress 3.0.1.

update wp_options set option_value=replace(option_value,'OLD URL','NEW URL') where option_value like "%OLD URL%";    
update wp_posts SET guid=replace(guid, 'OLD URL','NEW URL');
update wp_posts SET post_excerpt=replace(post_excerpt, 'OLD URL','NEW URL');
update wp_posts SET post_content=replace(post_content, 'OLD URL','NEW URL');    
update wp_postmeta SET meta_value=replace(meta_value, 'OLD URL','NEW URL');

J'ai lu un certain nombre de messages liés ici, mais aucun avec les requêtes réelles.

Je pensais que ce chercher et remplacer le plugin semblait prometteur, mais la seule documentation que j'ai trouvée était en allemand, ce que je ne peux pas lire, alors je suis trop prudent pour l'essayer.

Et ce fil de discussion sur passant du développement à la production contient de nombreuses informations, mais:

  1. une grande partie est au dessus de ma tête, et
  2. aucune question répertoriée.

TYIA,

Mike

4
MikeK

Oui, ces requêtes fonctionnent toujours.

Ceci est un tutoriel complet: http://web-kreation.com/tutorials/migrating-a-wordpress-site-ftp-phpmyadmin-and-sql-queries/

1
sorich87

Celui-ci vous causera des problèmes:

update wp_options set option_value=replace(option_value,'OLD URL','NEW URL') where option_value like "%OLD URL%";

Cela corrompra toutes les données de widget actives stockées dans la table d'options, car ces informations sont probablement sérialisées et que la requête ne prend pas en compte les données sérialisées. C’était l’essentiel du fil de discussion wp-hackers. Cependant, personne sur ce fil n'a semblé proposer une requête infaillible pour traiter des données sérialisées.

Vous voudrez peut-être simplement changer les options pour 'siteurl' et 'home' dans wp_options individuellement, puis modifier vos widgets à partir du tableau de bord.

3
goldenapples

Les autres vous ont fait des suggestions sur les requêtes SQL que vous avez demandées et j'espère que leur apprentissage vous aidera dans votre processus. Je sais que je m'aide toujours à apprendre un niveau en dessous de l'endroit où je dois opérer.

Mais vous avez également demandé le meilleur moyen de le faire et j'aimerais vous suggérer de regarder le message que vous référencez à nouveau ( Passage du développement à la production ), mais cette fois regarde le plugin je référence dans le post, un plugin pour réparer les données après être passé d'un serveur à un autre. Plutôt que de vous salir périodiquement avec SQL, vous devez réapprendre pourquoi ne pas déléguer cela à un plugin qui le gère?

Le plugin est entièrement raccordable. Ainsi, lorsque vous devez utiliser SQL pour gérer d'autres données introduites par l'un de vos autres plug-ins, vous pouvez les étendre et ainsi gérer tout ce qui doit être corrigé lorsque vous le souhaitez. passer d'un hôte à un autre. La meilleure partie est probablement que vous donne une place dans /wp-config.php pour répertorier tous les détails de chaque hôte; c'est-à-dire des domaines, des chemins d'accès racine, des bases de données, des utilisateurs dbus, des mots de passe et même des éléments tels que des clés d'API Google Maps lorsque vous en avez besoin.

Le plugin est toujours en alpha, c'est pourquoi il est ici sur StackExchange et n'est pas encore répertorié dans le référentiel de plugins WordPress:

0
MikeSchinkel