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 :


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;
Puis

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 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
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 récupérer les "relations" entre les articles et les 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 mettre à jour le nombre de catégories :
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 garder le statut "non-approuvé" de certains 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 mettre à jour les commentaires
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 réparer les "ruptures" éventuelles d'articles :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '', '');
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, '"/sites/default/files/', '"/wp-content/uploads/');
- toutes les requêtes ont été bien effectuées.
- 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...