Récemment j'ai créé un thème WordPress personnalisé pour un webzine culturel. problème : le site était hébergé sur Wordpress.com, qui ne permet pas d'installer son propre thème, ni de modifier l'existant. Il a donc fallu migrer le site vers autre un hébergeur. Je décrypte ici la méthode que j'ai suivie.

Cet article a été publié il y a plus d'un an. Les informations qu'il contient ne sont peut-être plus pertinentes à l'heure actuelle.

Exporter la base de donnée

Première chose à faire : sauvegarder. Problème : si vous avez un blog WordPress.com, impossible d’accéder à un serveur FTP pour récupérer vos fichiers. Heureusement, l’outil d’export de WordPress est plutôt efficace, et vous permet d’exporter sous forme de flux XML tout le contenu de votre blog (dossier uploads compris). Pour exporter le contenu de votre base de données, rendez-vous dans le menu Outils > Export, et télécharger votre fichier.

Exporter le contenu d'un site WordPress.com

Installer WordPress sur votre nouvel hébergeur

Commencez par télécharger WordPress et installez le sur votre nouvel hébergement. Rien de bien compliqué, si vous ne savez pas comment faire, je vous invite à visiter cette page.

Importer votre base de donnée sur votre nouveau site

Cette étape vous permet de réinjecter le contenu de votre site sur votre nouvel hébergement. Rendez-vous dans le panneau d’administration du WordPress fraîchement installé, menu Outils > Importer. Choisissez l’outil WordPress, puis importez le fichier XML depuis votre ordinateur. Attention, l’upload peut être très long, notamment si vous avez énormément de fichiers média (images, musique, vidéo).
Importer le contenu d'un site WordPress.com vers un site WordPress.org

Configurer votre nouveau site WordPress

A priori, tous vos articles, vos commentaires et toutes vos pages ont été importés dans votre nouvelle installation WordPress. A ce stade, il vous faut recréer/réattribuer vos menus, les modèles de page, etc. Pensez aussi à supprimer les posts/pages/commentaires créés par défaut par WordPress lors de toute nouvelle installation.

Rendre les shortcodes fonctionnels

Le souci principal que j’ai rencontré lors de la migration du site est l’intégration des fichiers médias (videos, audio) dans les articles, qui est différente selon la plateforme. WordPress nous permet d’insérer des vidéos Youtube, par exemple, en collant simplement l’adresse de celle-ci dans notre article, tandis que WordPress.com utilise à cet effet des shortcodes… qui ne fonctionnent plus après la migration sur un hébergeur différent. Il va donc falloir les convertir pour les rendre fonctionnels. Il y a plusieurs manières de procéder.

Les plugins

Certains plugins permettent de convertir automatiquement les shortcodes en vidéos/audio valides. J’en ai sélectionné deux, les autres ne m’ayant pas convaincue.

  • Le premier, Degradable HTML5 audio and video, permet de convertir les balises [audio] et [video] en objets fonctionnels. Il utilise un code HTML5 pour les navigateurs compatibles, et reste fonctionnel pour les navigateurs plus anciens.
  • Le second, SoundCloud Shortcode, permet d’insérer des fichiers audio provenant du site Soundcloud. Il est possible de choisir entre HTML5 et Flash.

Ces deux plugins résolvent une partie du problème seulement. Le site dont je parle illustrant une grande partie de ses articles avec des vidéo Youtube, il m’a fallu trouver un moyen de transformer ces shortcodes en vidéos fonctionnelles. J’ai testé plusieurs méthodes.

Les fonctions php

Il est possible d’ajouter une fonction à votre thème qui convertira automatiquement les shortcodes en vidéos. (L’astuce vient de chez Catswhocode). Ajoutez cette portion de code dans le fichier functions.php de votre thème.

 function cwc_youtube($atts) {
    extract(shortcode_atts(array(
        "value" => 'http://',
        "width" => '475',
        "height" => '350',
        "name"=> 'movie',
        "allowFullScreen" => 'true',
        "allowScriptAccess"=>'always',
    ), $atts));
    return '<object style="height: '.$height.'px; width: '.$width.'px"><param name="'.$name.'" value="'.$value.'"><param name="allowFullScreen" value="'.$allowFullScreen.'"></param><param name="allowScriptAccess" value="'.$allowScriptAccess.'"></param><embed src="'.$value.'" type="application/x-shockwave-flash" allowfullscreen="'.$allowFullScreen.'" allowScriptAccess="'.$allowScriptAccess.'" width="'.$width.'" height="'.$height.'"></embed></object>';
}
add_shortcode("youtube", "cwc_youtube");

Pour afficher une vidéo, il suffira d’utiliser ce shortcode : [youtube value= »url-de-la-video-youtube »].

Nouveau problème : toutes les vidéos Youtube insérées dans le site que j’ai migré n’utilisaient pas ce shortcode, certainesutilisaient [youtube src= »url-de-la-video-youtube »], c’est assez changeant. Plutôt que de créer une fonction par shortcode, j’ai choisi d’intervenir directement dans la base de données WordPress.

Les requêtes MySql

Attention : avant toute manipulation, sauvegardez votre base de données.

Rendez-vous dans le phpMyAdmin de votre hébergeur et connectez-vous à votre base de données. Cliquez sur l’onglet SQL. Dans la fenêtre qui s’ouvre, vous pourrez entrer vos requêtes.
Requette MySQL, pour modifer les shortcodes de votre WordPress
Je souhaite tout d’abord transformer mes shortcodes [youtube src= »url-de-la-video-youtube »] en [youtube value= »url-de-la-video-youtube »]. Voici la requête que j’ai utilisé :

UPDATE wp_post SET post_content = replace(post_content, '[youtube src', '[youtube value' ) ;

Seconde astuce : certains articles utilisaient les shortcodes pour insérer les fonctions de partage sur les réseaux sociaux. Ayant intégré cette fonction directement dans le nouveau thème, ces shortcodes devenaient inutiles. Voici comment les supprimer purement et simplement :

UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;

Ici, je supprime le shortcode Twitter, mais toutes les déclinaisons sont possibles.

Modifier les url absolues

Attention : avant toute manipulation, sauvegardez votre base de données.

Suite à la migration du site sur le nouvel hébergeur, les images que contenaient celui-ci restaient liées à l’ancien domaine. Normal, WordPress insère les images en chemin absolu. Il fallait donc modifier tous les liens pour qu’ils dirigent vers le nouveau domaine. Pour ceci, retour aux requêtes SQL, et donc dans le panneau phpMyAdmin de votre hébergeur. La requête qui suit va permettre de remplacer l’ancienne url de votre site par la nouvelle, dans votre base de données :

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.anciensite.com', 'http://www.nouveausite.com');

Attention, les fichiers images de wordpress.com prennent dorénavant pour url https://votrenomdedomaine.files.wordpress.com, pensez également à effectuer le remplacement de cette url, grâce à la même requête MySql.

Migrer le nom de domaine

Votre site est maintenant prêt. A une exception, cependant : il vous faut faire pointer votre nom de domaine vers votre nouvel hébergeur. Pour ceci, rendez-vous dans votre panneau d’administration WordPress.com, puis dans le menu Boutique > Domaines.
Faire pointer votre nom de domaine depuis WordPress.com vers votre nouvel hébergeur
Sélectionnez le nom de domaine à migrer, puis, sous « Administration de domaine », choisir l’option « Transfer ownership to another registrar » dans la liste déroulante. WordPress.com va alors vous demander de choisir un mot de passe qui vous permettra de vous connecter au panneau de gestion de domaines. Vous devriez ensuite arriver à l’étape qui suit :
Faire pointer votre nom de domaine depuis WordPress.com vers votre nouvel hébergeur
Cliquez sur le nom de domaine à transférer. La fiche descriptive de votre nom de domaine s’affiche. Il vous suffit simplement de cliquer sur « Send by email », à côté de « Authorisation code ». Vous recevrez alors par email le code d’autorisation de transfert, à renseigner lors de votre demande de transfert de domaine chez votre nouvel hébergeur.
Faire pointer votre nom de domaine depuis WordPress.com vers votre nouvel hébergeur

Voilà, vous avez transféré votre blog WordPress.com ! Je pense n’avoir rien oublié, mais si c’est le cas, n’hésitez pas à donner vos infos en commentaires. 🙂

35 commentaires

  1. Bonjour, J’ai suivi votre tuto, cependant je me suis trop vite perdu, j’ai réussi l’installation de wordpress sur mon nouveau site semble-t-il étant donné que celui-ci existe : http://blog-phytomedica.fr/
    Cependant ce blog étant apparu durant l’installation je ne sais absolument pas comment me connecter à l’interface admin de ce nouveau compte.
    En gros il y a un blog sur mon nom de domaine c’est moi qui l’y ai mis, mais je ne sais pas comment, ni comment le modifier!
    HELP svp!

    1. Bonjour,
      Je vous conseille de lire les tutoriels du Codex WordPress pour apprendre à utiliser votre nouveau blog.

      Bon courage

  2. Merci pour cet article. Mais pour les images qui sont restées hébergées chez wordpress.com alors ?

    1. En fait, lors de l’export de la BDD wordpress.com, il y a une option « tout exporter », qui permet d’inclure les images dans le fichier d’export. Et lorsqu’on ré-injecte ce fichier dans la nouvelle installation WordPress, les images sont importées sur le nouveau serveur.

  3. Un grand merci, pour le tuto. Je vais devoir me lancer dans une migration dans les prochains jours; Ça va m’etre utile.

  4. J’ai aussi commencé par wordpress.com avant de migrer sur mon propre hébergeur. A l’époque, j’ai tout recommencé à zéro et modifié les articles à coups de copier-coller … Autant dire qut ton article m’aurait été plus qu’utile!

  5. Whao ton blog est une vraie mine d’or !
    Je suis tombée dessus en cherchant comment renommer les urls des médias suite à un changement d’hébergement. Merci beaucoup, grâce à ton astuce ca s’est fait en un tour de main.
    Merci !

  6. merci pour tout !
    ceci dit, j’ai eu un petit problème : mon blog sous wordpress.com utilisait un thème et à l’import, celui-ci n’a visiblement pas suivi… C’était un thème gratuit appelé Neat!
    J’ai fait une recherche sur le web pour l’intsaller dans son petit répertoire et il semble que ce thème ne soit téléchargeable nulle part… 🙁
    donc y-a-t-il un moyen d’importer le thème depuis wordpress… ? (en fait c’est délirant car le thème est proposé en gratuit sur wordpress.com et semble ne plus exister…

    mystère et boules de nerfs

    1. Je pense que ce thème n’existe que sur WordPress.com, d’où l’impossibilité de le trouver…

  7. Merci pour l’article, J’ai réussi à transférer le site vers un nouveau hébergeur. Cependant quand je clique sur un lien, j’ai cette erreur: The requested URL was not found on this server.

    J’ai besoin de votre aide et merci 🙂

  8. Pingback: Migrer un blog WordPress.com vers un autre hébergeur | Tuto WordPress | NX-01
  9. Merci pour le tuto! Je viens de faire toutes les opérations en moins de dix min, le transfert est en cours 🙂

  10. Bonjour,

    J’ai juste un soucis avec l’étape Migrer le nom de domaine :
    Je n’ai pas d’onglet ’boutique’ dans l’admin wordpress.

    Comment cela ce fait-il  ?

    1. Votre site d’origine est-il bien hébergé sur WordPress.com ?

  11. Bonjour, et merci pour toutes ces infos très utiles.
    Mon nom de domaine hébergé chez wordpress.com a expiré depuis le 24 janvier.
    Ce nom de domaine apparaît comme indisponible chez OVH, et n’apparaît pas sur la fiche descriptive wordpress du nom de domaine.
    Auriez-vous une solution?
    Merci d’avance

    1. Bonjour,

      Il faut d’abord renouveler votre ndd chez WordPress.com, pour pouvoir ensuite le transférer chez OVH (attention, il y a un délai de 60 jours lorsqu’un NDD vient d’être renouvelé).

  12. Pingback: Là où je t'emmènerai … » Les joies de la migration !
  13. Bonjour,

    Merci pour cet article qui me semble très intéressant, mais je n’ose pas aller de l’avant ! En effet, je viens d’acheter un nom de domaine sous WordPress.com (80€/an) et me rend compte que je suis un peu bloquée pour certaines choses (pas de modification header/footer, pas de tracking analytics, pas d’extensions etc…)
    J’ai un peu peur de faire un transfert, je voudrais utiliser wordpress.org, d’autant que je ne sais pas comment faire pour l’hébergement ? En effet le NDD a été acheté via wordpress.com (et donc son hébergement aussi). Et je ne veux pas repayer pour un hébergement, ni prendre le risque de tout bloquer… Une astuce ?

    Merci et bonne journée 🙂

    1. Bonjour,

      Chez WordPress.com, vous avez payé pour votre nom de domaine, pas pour hébergement. Donc, si vous souhaitez passer à un système hébergement personnel + nom de domaine chez un autre hébergeur, il vous faudra payer l’hébergement.

  14. Bonsoir, j’ai télécharger wordpress pour pouvoir y migrer mon actuel blog de cuisine ( Maryse & Cocotte ) qui se trouve chez wordpress.com. J’ai une question, lorsque tout mon contenu ( articles, photos et commentaires ) se retrouveront sur mon nouvel hébergeur ( wampserver ), les visiteurs veront-ils encore mes articles sur wordpress.com ? Merci.

    1. Bonjour,

      Tant que vous n’aurez pas désactivé votre blog WordPress.com, les internautes y auront toujours accès, oui. Je vous conseille de bien vous assurer que votre blog a été transféré correctement et de vérifier que les liens fonctionnent correctement (vous pouvez par exemple installer le plugin Broken Links Checker pour vous aider & accélérer la tâche). Puis vous pourrez désactiver votre blog, ou ne laisser qu’un message redirigeant vos lecteurs vers la nouvelle adresse, au cas où certains aient enregistré l’url de votre blog sous sa forme wordpress.com.

      Bon courage !

  15. Bonjour,
    D’abord merci pour votre tutoriel, très utile. J’ai seulement un soucis quand je veux « Modifier les url absolues »
    J’ai suivi vos indications mais quand je procède au script, il me dit O ligne affectée et les liens ne fonctionne toujours pas. Je ne suis pas sûre de l’adresse que je dois mettre (l’ancien site est bretelles.wordpress.com) est-ce que cela peut quand même fonctionner? dois-je mettre le « s » de https de wordpress?
    Merci

    1. Bonsoir,

      Vous pouvez commencer par effectuer la requête sur « https://bretelles.wordpress.com/ » vers « http://bretelles.ch/ », puis, pour vous assurer de ne rien avoir laissé « trainer », effectuer la même opération avec l’url « http://bretelles.wordpress.com/ ».

      Attention, une recherche rapide sur votre site wordpress.com m’indique que l’url absolue de vos images est « https://bretelles.files.wordpress.com », pensez donc également à effectuer l’opération sur cette url.

      Bon courage !

  16. Bonjour,
    Merci beaucoup pour ce tuto très utile !
    J’ai un souci cependant : j’ai effectué une migration d’un blog wordpress.com vers un hébergeur. Le blog avait été créé avec un thème payant, et le thème ne suit pas à la migration… vous avez une idée de ce que je pourrais faire pour y remédier ? A part racheter le thème… Merci d’avance.

    1. Il y a des chances que le thème premium WordPress.com n’existe pas sous WordPress.org, d’où le problème. Il vous faudra choisir un nouveau thème…

  17. Bonsoir, j’essaie en vain de télécharger le fichier d’exportation pour passer à la migration de mon blog mais apparemment il y a un problème avec mon nom de domaine. Mon premier nom de blog était maryseetcocotte18.wordpress.com et l’actuel est maryseetcocotte.com ( toujours sous wordpress.com ). J’ai un code d’erreur lorsque j’essaie de télécharger le fichier d’exportation dans lequel se trouve mon premier nom de blog. Merci pour votre aide.

  18. Je vais essayer, mais déjà un grand merci pour votre article

  19. bonjour,

    Je rencontre un problème dans la migration de mon blog wordpress.com vers mon nouveau blog: tous les articles n’ont pas été migrés!
    En fait j’ai les articles les plus anciens, mais pas les nouveaux!
    Avez-vous une idée de ce qui a pu mal fonctionner?

    Merci beaucoup

    1. Bonjour,

      Si vous avez continué à publier des articles après avoir exporté votre base de données, il y a de fortes chances que votre problème vienne de là.

  20. Bonjour,

    Ce tuto a l’air complet et devrait m’aider.
    Je voulais simplement savoir si je dois d’abord transférer le NDD de WP.com vers OVH ou si je dois installer le site avant ?

    1. Bonjour,

      Lors de la création de votre hébergement, OVH devrait vous proposer un pack hébergement + NDD, et vous demander de transférer le nom de domaine s’il est installé sur WordPress.com.

      Bon courage,

      Mylène

  21. bonjour,
    tout d’abord merci pour ce tuto, mais j’ai deux questions.
    Lors de l’exportation du blog il y a eu 4 fichiers XML distincts comment doit on faire dans ce cas pour importer ces fichiers sur le nouveau blog?
    Deuxième question pour les images, j’ai pu voir dans le code html des billets, l’url des images est idariane.files.wordpress.com si on change les urls absolues n y a t il pas un risque de ne plus voir les images ? et si on supprime le blog wordpress.com aussi?

    merci beaucoup

    1. Bonjour,

      – Vous pouvez importer plusieurs fichiers XML, les uns après les autres, dans votre nouvelle installation WordPress, sans écraser vos données précédentes.

      – Pour les images, si vous avez choisi de les exporter avec les autres données de votre blog wordpress.com, elles seront réinjestées dans votre nouveau blog, vous pouvez donc mofifier les url absolues sans problème.

      Bon courage,

      Mylène

  22. Merci,

    tout marche bien !!

  23. Exactement ce que je cherchais, un grand merci !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec une astérisque: *.