Bonjour,
Ma configuration WP actuelle
- Version de WordPress : 2.9.1
- Version de PHP/MySQL : 5.0.32
- Thème utilisé : RichWP Magazine Light
- Extensions en place :
- Nom de l'hebergeur : OVH
- Adresse du site : fermé au public pour le moment
Problèmes rencontrés :
Tout d'abord, je vous explique mon problème.
J'ai transféré toute une base de donnée de Drupal vers Wordpress en opérant de la sorte :
Puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TRUNCATE TABLE tempdb.wp_comments; TRUNCATE TABLE tempdb.wp_links; TRUNCATE TABLE tempdb.wp_postmeta; TRUNCATE TABLE tempdb.wp_posts; TRUNCATE TABLE tempdb.wp_term_relationships; TRUNCATE TABLE tempdb.wp_term_taxonomy; TRUNCATE TABLE tempdb.wp_terms;
Pour importer le contenu des articles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 INSERT INTO tempdb.wp_terms (term_id, `name`, slug, term_group) SELECT d.tid, d.name, REPLACE(LOWER(d.name), ' ', '-'), 0 FROM tempdb.term_data d INNER JOIN tempdb.term_hierarchy h USING(tid) ; INSERT INTO tempdb.wp_term_taxonomy (term_id, taxonomy, description, parent) SELECT d.tid `term_id`, 'category' `taxonomy`, d.description `description`, h.parent `parent` FROM tempdb.term_data d INNER JOIN tempdb.term_hierarchy h USING(tid) ;
Pour récupérer les "relations" entre les articles et les catégories :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 INSERT INTO tempdb.wp_posts (id, post_date, post_content, post_title, post_excerpt, post_name, post_modified) SELECT DISTINCT n.nid, FROM_UNIXTIME(created), body, n.title, teaser, REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '-'),'.', '-'),',', '-'),'+', '-'), FROM_UNIXTIME(changed) FROM tempdb.node n, tempdb.node_revisions r WHERE n.vid = r.vid
Pour mettre à jour le nombre de catégories :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO tempdb.wp_term_relationships (object_id, term_taxonomy_id) SELECT nid, tid FROM tempdb.term_node;
Pour garder le statut "non-approuvé" de certains commentaires :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 UPDATE wp_term_taxonomy tt SET `count` = ( SELECT COUNT(tr.object_id) FROM wp_term_relationships tr WHERE tr.term_taxonomy_id = tt.term_taxonomy_id );
Pour mettre à jour les commentaires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO tempdb.wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url, comment_approved) SELECT nid, FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage, status FROM tempdb.comments;
Pour réparer les "ruptures" éventuelles d'articles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`);
Pour actualiser le chemin des fichiers images :
Code : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '', '');
- toutes les requêtes ont été bien effectuées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '"/sites/default/files/', '"/wp-content/uploads/');
- Mais j'ai tout d'abord eu des soucis d'encodage lors de la migration de la table, la casse n'était pas respectée pour les articles (titres et contenus), et pour les noms d'utilisateurs. Comment faire correspondre les champs ? les jeux de caractère ?
Mes tables SQL :
ma table wp_posts ressemble à ça :
et ma table drupal_node_revisions (l'équivalent wp_posts chez drupal) ressemble à ça :
Ma base My SQL:
---
- Problèmes rencontrés :
- Lorsque par exemple je veux cliquer sur le nom d'un auteur Caroline DUFON pour avoir accès à la liste de ses posts, ça me fait ça : www.monsite.com/author/Caroline%20DUFON/ et me renvoie vers une erreur 404.
- Sur un total de 913 posts transférés vers Wordpress, certains n'ont pas été attribués au bon auteur, et environ 300 de ces posts ont été attribués automatiquement à admin.
- Je souhaiterais gérer les permaliens, de telle manière www.monsite.com/bonjour-a-tous, mais pour le moment je n'ai réussi qu'à faire www.monsite.com/bonjour_a_tous : ou est-ce que je peux modifier pour que le underscore soit un tiret? mod_rewrite?
- est-ce qu'il y a moyen de faire correspondre les champs multi-auteurs de Drupal à Wordpress? le multi-auteur se présente de la sorte pour drupal dans la BDD SQL :
Merci de bien vouloir apporter votre contribution, je m'en sors pas décidément...
Partager