Dotclear vers Wordpress

WRInaute discret
bonjour,

nous avons un blog qui tourne sous DotClear 2.1.1 depuis 2006 et qui compte plus de 300 articles et 270 commentaires. nous aimerions faire évoluer ce blog vers Wordpress. comment puis je m'y prendre pour converser l'ensemble des noto de chaque page ? j'ai opté à l'heure actuelle pour un petit passe au Xenu, export du rapport généré, mais après ? comment réussir à mettre mes articles d'un dotclear à un wordpress ? j'ai tenté plusieurs solution via l'outil d'export/import mais ça n'a pas l'air très au point !

si quelqu'un à une solution... :D

d'avance merci...
 
WRInaute accro
L'outil d'import/export marche très bien à ce niveau, pour peu que tu n'ais pas trop de plugin qui soit venu s'insérer dans le process de création de contenu. Perso je suis sur une problématique du genre avec mon www, mais je suis forcé de mettre en plus les mains dans le cambouis étant donné que j'ai beaucoup bidouillé mon Dotclear a la mano.
 
WRInaute accro
Bonjour

Pour ma part j'ai migré mon "vieux" Dotclear (qui était en 1.2.6 !) vers WP en octobre dernier, avec très grand bonheur... mais aussi pas mal de difficultés !

J'avais à cette époque +430 articles et +5000 commentaires ; comme j'avais beaucoup "tuné" mon Dotclear, j'ai du au final retoucher 70% des articles un par un :roll:

Pour la réécriture, j'ai eu la chance d'avoir été en version 1.2.x à l'époque, ce qui m'a permis de les gérer quasi automatiquement en une ligne de htaccess (ça a été par contre sensiblement plus compliqué pour les pages d'archives !)

J'avais utilisé l'import/export.
 
WRInaute discret
vais je devoir me faire du copie / colle de chaque article ? j'aurais bien aimé conserver les commentaires également...
jusqu'à maintenant j'ai tout essayé niveau import / export et ça plante à un moment donné... :evil: saloperie de dotclear...
 
WRInaute accro
@cedric_g : je suis intéressé par la ligne que tu as mis en htacces. Ca signifie que lors de l'import tu as réussi à conserver les id de post ?
 
WRInaute discret
UsagiYojimbo a dit:
L'outil d'import/export marche très bien à ce niveau
lorsque j'exporte, ça me fait un fichier txt. sous dotclear je m'importe de quelle manière ce fichier dans wordpress ? il ne propose aucun import en txt. d'autre part, les images du coup, ne sont plus sur le bon chemin... comment y remédier ? :mrgreen:
 
WRInaute accro
Au pire pour les images, tu peux toujours changer à la mano dans le fichier SQL, y'en a pour 2 secondes de rechercher/remplacer. ;)
 
WRInaute accro
UsagiYojimbo a dit:
@cedric_g : je suis intéressé par la ligne que tu as mis en htacces. Ca signifie que lors de l'import tu as réussi à conserver les id de post ?


(j'avais oublié que j'avais abandonné la solution du htaccess :mrgreen: mais ça revient au même !)



Je n'ai pas conservé les ID mais j'ai conservé les mêmes URL réécrites :)

En fait l'astuce consiste justement à virer la notion de date et d'ID pour ne préserver que la partie texte des liens.

Par ex. on passe de
blog.example.com/?2010/05/24-125-ceci-est-le-titre

vers

blog.example.com/ceci-est-le-titre/

Pour ma part j'ai utilisé une réécriture spécifique codée en PHP dans le header.php de mon thème :

Code:
<?php
	// Fonction retournant vrai si $texte commence par $recherche
	function startswith($texte, $recherche) {
		return substr($texte, 0, strlen($recherche)) === $recherche;
	}
	
	/***** Réécriture manuelle des anciennes URL (format Dotclear 1.2.6) *******************************************/
	
	// Lecture des variables serveur
	$server_name = $_SERVER['SERVER_NAME'];	// Nom du "serveur"
	$sURL=$_SERVER["QUERY_STRING"];			// Querystring (ce qu'il y a après le "?")
	
	// Gestion des tags
	if(startswith($sURL,'tag/')) {
		$sTag=explode('/',$sURL);
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/tag/".$sTag[1]);
		exit(); 
	}

	// Gestion de la table des matières
	if(startswith($sURL,'toc/')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/plan-du-site/");
		exit(); 
	}
	
	// Gestion des catégories (spécifique au blog !)
	if(startswith($sURL,'News')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/articles/actualites/");
		exit();
	}
	elseif(startswith($sURL,'Photographies')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/articles/photographies/");
		exit();
	}
	elseif(startswith($sURL,'Reportages')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/articles/reportages/");
		exit();
	}
	elseif(startswith($sURL,'Techniques')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/articles/techniques/");
		exit();
	}
	elseif(startswith($sURL,'Nature')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/articles/nature-environnement/");
		exit();
	}
	elseif(startswith($sURL,'Coups-de-coeur')) {
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/articles/coups-de-coeur/");
		exit();
	};
	
	// Gestion des billets
	$reg="/^\d{4}\/\d{2}\/\d{2}\/\d+-.+/";
	if(preg_match($reg,$sURL)) {
		// Décomposition
		$newURL=substr(strstr($sURL,'-'),1,strlen(strstr($sURL,'-'))-1);
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/$newURL");
		exit();
	}
	
	// Gestion des archives chronologiques
	// Jour
	$reg="/^\d{4}\/\d{2}\/\d{2}/";
	if(preg_match($reg,$sURL)) {
		// Décomposition
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/$sURL/");
		exit();
	}
	// Mois
	$reg="/^\d{4}\/\d{2}/";
	if(preg_match($reg,$sURL)) {
		// Décomposition
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/$sURL/");
		exit();
	}
	// Année
	$reg="/^\d{4}/";
	if(preg_match($reg,$sURL)) {
		// Décomposition
		header('HTTP/1.1 301 Moved Permanently', false, 301);
		header("Location: http://" .$server_name."/$sURL/");
		exit();
	}

?>


Comme tu peux le voir, j'ai géré les catégories de manière très spécifique, ainsi que ma "table des matières" (j'utilisais un plugin idoine) ; idem pour les tags. Pour les billets, une bonne vieille expression régulière fait l'affaire ;)

Ça fonctionne nickel et je trouve ça plus simple que de bidouiller le htaccess (déjà conséquent sur mon blog !)
 
WRInaute accro
la structure sans la date en début d'url a aussi le gros avantage dans wordpress de pouvoir facilement interdire via le robots.txt l'indexation des archives calendaires
 
WRInaute accro
Exact ;)

(d'ailleurs je viens de prendre conscience, comme je l'ai interdit de toute façon sur mon blog, que les "anciennes" pages étaient redirigées de manière... inutile !)
 
Discussions similaires
Haut