wordpressmall
3
fév
Par
Mylène Boyrie

Migrer un blog WordPress.com vers un autre hébergeur

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.

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.

Installer WordPress sur votre nouvel hébergeur

Téléchargez 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).

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 et 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.

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’ancien 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');

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.

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 :

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.

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. :)

Commentaires

16 commentaires

Abonnez-vous aux commentaires de ce billet :)

16 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!

  2. romain dit :

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

    • Mylene dit :

      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. Pascal dit :

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

  4. Martin dit :

    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. Kim dit :

    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. masoero dit :

    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

  7. elahmed dit :

    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. matt 3.0 dit :

    Merci pour le tuto! Je viens de faire toutes les opérations en moins de dix min, le transfert est en cours :)

  9. pellier dit :

    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 ?

  10. Julien dit :

    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

  11. […] réussir son changement d’hébergement en 7 étapes ! Migrer un blog WordPress.com vers un autre hébergeur Migrer son Site WordPress en 3 Minutes Migration de mon blog […]

Commenter

– Utilisez votre nom/pseudo,
– Pas de spam,
– Les avatars viennent de Gravatar.com,
Merci !