Question à ceux qui connaissent wordpress

WRInaute occasionnel
Bonjour,

J'envisage de réinstaller mon blog sur une nouvelle base de donnée (nouveau nom de domaine), et, pour plus de sécurité, je souhaite changer le préfixe de mes tables.

Je possède une sauvegarde mais qui comporte des noms de tables traditionnels (wp_)

D'après vous : cela suffira-t-il de changer les préfixes dans la sauvegarde de ma bdd pour réaliser une installation correcte ?

Autre question mon site va changer de ndd et l'emplacement du blog également, comment dois-je gérer les liens sauvegardés dans ma base de donnée ?

Merci pour votre aide
 
WRInaute discret
D'après vous : cela suffira-t-il de changer les préfixes dans la sauvegarde de ma bdd pour réaliser une installation correcte ?

En théorie ... oui.


Autre question mon site va changer de ndd et l'emplacement du blog également, comment dois-je gérer les liens sauvegardés dans ma base de donnée ?

Le truc c'est qu'il faut effectivement le faire dans la BDD (pour aller dans réglages et modifier l'url du blog, il faut d'abord que le site fonctionne ...)
Un simple rechercher / remplacer (de de ton http://ndd/uri) dans le dump de ta base devrait suffire.


Ou sinon, une fresh install ... avec un import des données exportées de l'ancien ... (export "wordpress" en xml)
Upload du thème
Upload des plugins
Terminé.

Avant de se lancer : https://www.google.fr/search?sourceid=chrome&ie=UTF-8&q=d%C3%A9m%C3%A9n ... +wordpress
 
WRInaute accro
Non ça ne suffit pas. Certains champs de la table wp_users_meta utilisent dans les clés (meta_key) le nom des tables, donc à corriger ensuite à la main.

L'export en xml n'a rien à voir, c'est un export de contenu seulement. Il ne prend pas en compte les options du blog
 
WRInaute accro
Pour les liens, fais un bête rechercher/remplacer dans ton fichier sql, je l'ai fait plus d'une fois sans problème ;)
 
WRInaute accro
Pour les liens dans le blog, il suffit de prendre la bonne habitude de les enregistrer sous la forme '/monlien' et pas 'http://www.example.com/monlien'

Sinon pour l'adresse du blog et du site, on peut la forcer dans le wp-config.php si on ne veut pas toucher à la base.
 
WRInaute discret
Marie-Aude a dit:
Sinon pour l'adresse du blog et du site, on peut la forcer dans le wp-config.php si on ne veut pas toucher à la base.

et derrière ça force aussi un update dans la base des anciennes url ?
intéressant !

J'imagine que ça suffise pour que ça fonctionne mais avec du ménage derrière ... sans compter pour chaque post un champ (guide ... je sais plus, et si il existe encore, et si il a déjà servi à quelquechose) qui reste avec des pas joli post_id= etc ...

un "habile" rechercher / remplacer dans la base marche pas trop mal ... tout dépend de la taille du dump ...

Dans certains cas, c'était tellement fastidieux qu'un export/import du xml est devenu une solution de facilité, même si il y a de la perte effectivement (même pour les commentaires je me demande si ils ne sautent pas ...)

et puis, un déménagement c'est toujours fatiguant ...
au fait, ce week end je suis pas dispo, j'ai piscine ;)
 
WRInaute accro
Non, on ne change rien au contenu de la base, simplement on peut accéder au site et changer les options dans l'admin si on a oublié de le faire avant

Pour le ménage dans la base, c'est fait en 5 commandes mysql, pas la peine de le faire sur le dump, dans la base c'est mieux. (et ça permet quand même de savoir champ par champ ce qu'on fait).

ma_table SET mon_champ = replace(mon_champ, 'ancienne-chaine', 'nouvelle-chaine') c'est pas sorcier :D
 
WRInaute accro
Bonjour

Vu que je l'ai fait pas plus tard que vendredi, voici la méthodologie pour le changement d'URL :

1°) Modifier ton wp-config.php, vers la ligne 70 :
Code:
$table_prefix  = 'tonprefixe_';

2°) Faire quelques requêtes de rechercher/remplacer dans ta base :

Tout d'abord la table des options (afin de changer l'URL par défaut)
Code:
UPDATE 
    tonprefixe_options 
SET 
    option_value = replace(option_value, 'http://www.anciendomaine.com', 'http://www.nouveaudomaine.com') 
WHERE 
    option_name = 'home' OR option_name = 'siteurl';

Puis la table des posts :
Code:
UPDATE 
    tonprefixe_posts 
SET 
    guid = replace(guid, 'http://www.anciendomaine.com','http://www.nouveaudomaine.com'),
    post_content = replace(post_content, 'http://www.anciendomaine.com', 'http://www.nouveaudomaine.com');


Tu peux éventuellement aussi balayer intégralement les autres tables, notamment celle des options, si tu as des plugins qui utilisent le NDD en leur sein.

Voilà :)
 
WRInaute accro
'tit ajout car j'ai omis une étape :roll:

Faut également (si vous voulez préserver le droit d'accéder au back-office :mrgreen: ) aller changer quelques p'tites choses dans la table tonprefixe_options, et notamment le nom de la table contenant les rôles utilisateur (!)

Il faut donc rechercher l'option_name "wp_user_roles" et la remplacer par "tonprefixe_user_roles"

Dernière étape, aller dans la table "tonprefixe_usermeta" et renommer tous les champs "meta_key" concernés.


Et là ça fonctionne bien :)
 
WRInaute accro
cedric_g a dit:
'tit ajout car j'ai omis une étape :roll:
Vu l'heure des messages, je dirais "on voit le mec qui vient de ramer trois heures sur un problème d'autorisation parce qu'il n'a pas lu ce que j'avais écrit au dessus" :mrgreen: :lol:
 
WRInaute occasionnel
cedric_g a dit:
'tit ajout car j'ai omis une étape :roll:

Faut également (si vous voulez préserver le droit d'accéder au back-office :mrgreen: ) aller changer quelques p'tites choses dans la table tonprefixe_options, et notamment le nom de la table contenant les rôles utilisateur (!)

Il faut donc rechercher l'option_name "wp_user_roles" et la remplacer par "tonprefixe_user_roles"

Dernière étape, aller dans la table "tonprefixe_usermeta" et renommer tous les champs "meta_key" concernés.


Et là ça fonctionne bien :)

En fait j'ai modifié l'intégralité des données avec Ultra edit et ça a l'air de fonctionner...

Sinon j'ai une autre question pour éviter un nouveau post :
Je suis tombé un peu par hasard sur la page http://www.monsite/monblog/wp-admin/options.php

Avec tout un tas d'infos sur ma base de donnée.
Est-ce normal que cette page soit accessible (et visible) ? L'est-elle en temps normal ?

Merci à tous
 
WRInaute accro
Quand tu es connecté en tant qu'admin oui c'est normal qu'elle soit visible. C'est une page "additionnelle" qui permet de voir le contenu de la table wp-options, c'est parfois bien pratique :D
 
WRInaute occasionnel
Marie-Aude a dit:
Quand tu es connecté en tant qu'admin oui c'est normal qu'elle soit visible. C'est une page "additionnelle" qui permet de voir le contenu de la table wp-options, c'est parfois bien pratique :D
Ah bon j'ai eu la trouille, je n'avais encore jamais vu cette page.

Bon allez je tente une dernière question, là c'est la question de la mort :mrgreen:

J'ai le template Streamline et j'ai un champ qui permet de "régler" le nombre de d'articles qui s'affichent en page d'accueil.
Ce champ est inactif (je pense que c'est dû à des chmods ultra stricts de mon hébergeur) du coup certaines modifs ne sont pas prise en compte.

J'ai par contre le solution de modifier le champ directement via phpMyAdmin mais dans les champs d'options les données sont écrites ainsi :

Code:
a:12:{s:11:"color_style";s:4:"Blue";s:17:"header_blog_title";s:5:"Image";s:17:"featured_top_left";
s:1:"9";s:21:"featured_top_left_num";s:1:"5";s:29:"featured_top_left_thumb_width";s:3:"150";
s:30:"featured_top_left_thumb_height";s:3:"150";s:5:"enews";s:3:"Yes";s:8:"enews_id";s:0:"";
s:8:"blog_cat";s:1:"9";s:12:"blog_cat_num";s:1:"5";s:7:"vid_cat";s:1:"9";s:11:"vid_cat_num";s:1:"5";}
et je ne sais pas trop lequel il faut modifier...

Quelqu'un a-t-il une idée car j'imagine que c'est propre à chaque theme :(
Merci en tout cas.
 
WRInaute accro
C'est une chaine sérialisée. Tu utilise quelle valeur pour le moment ? Il s'agit ensuite de la retrouver dans ton champ, et de la changer. Mais a mon avis, si tu n'arrives pas à mettre cette donnée à jour via l'interface, ca vient plus d'un problème du template que d'une histoire de chmod...
 
WRInaute occasionnel
Bon ben voilà j'ai trouvé c'est la valeur

s:21:"featured_top_left_num";s:1:"5";

J'aurais pu le deviner car _num c'est assez parlant.
Par contre il fallait modifier la valeur dans deux champs.

Sinon "une chaine sérialisée" c'est quoi ?

Voilà, merci à tous pour l'aide
 
WRInaute accro
regarde serialize en php, c'est simplement une façon de stocker dans une chaine les composantes d'une array (tableau) avec des caractères de contrôles (s:21 c'est le nombre de caractères dans la clé meta_key qui vient en premier, et s:1 le nombre de caractères dans la clé meta_value

Normalement tu dois aussi avoir un contrôle sur l'ensemble de ces deux valeurs (un a: quelque chose ou un s: quelque chose, je ne sais plus)

Bref si tu changes ton 5 par n'importe quelle valeur numérique à un caractère tu n'auras aucun probleme
 
Discussions similaires
Haut