{"id":1010,"date":"2014-07-28T21:57:50","date_gmt":"2014-07-28T19:57:50","guid":{"rendered":"https:\/\/www.ubilogic.net\/blogotof\/?p=1010"},"modified":"2020-02-09T16:41:55","modified_gmt":"2020-02-09T15:41:55","slug":"migration-de-pluxml-vers-wordpress","status":"publish","type":"post","link":"https:\/\/www.ubilogic.net\/blogotof\/archives\/1010","title":{"rendered":"Migration de PluXML vers WordPress"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-1159\" alt=\"it_numbers\" src=\"https:\/\/www.ubilogic.net\/blogotof\/wp-content\/uploads\/2014\/07\/it_numbers-150x150.png\" width=\"150\" height=\"150\">Il y a plusieurs mois d\u00e9j\u00e0 (d\u00e9but 2013 en fait, \u00e7a date!), j&rsquo;ai d\u00e9cid\u00e9 de changer le moteur de mon blog. Pour une s\u00e9rie de raisons que je ne d\u00e9taillerai pas maintenant, j&rsquo;ai choisi de passer sous WordPress.<\/p>\n<p>Et bien entendu, je me suis dit que ce serait int\u00e9ressant de poster les \u00e9tapes qui m&rsquo;ont permis de r\u00e9aliser cette migration. Mais comme d&rsquo;habitude avec moi et mon blog, entre le moment o\u00f9 je veux \u00e9crire un article et le moment o\u00f9 je l&rsquo;\u00e9cris vraiment (et que je le publie!) il y a toujours un fameux d\u00e9lais. Quoi qu&rsquo;il en soit, voici donc les explications concernant cette migration ! \ud83d\ude09<\/p>\n<p>Comme toute migration, cela ne s&rsquo;est pas fait sans petits p\u00e9pins et \u00e0 l&rsquo;instar de Rome, cela ne s&rsquo;est pas fait en un jour non plus.<\/p>\n<p>Et cette petite migration se termine avec un \u00ab\u00a0happy end\u00a0\u00bb puisque le contenu que vous lisez est bien sous WordPress !<\/p>\n<p>Pour plus d&rsquo;infos, lisez la suite&#8230;<\/p>\n<p><!--more--><\/p>\n<p>Alors, tout d&rsquo;abord pour rappel, mon blog tournait pr\u00e9c\u00e9demment sous PluXml.<\/p>\n<p>La premi\u00e8re chose a faire \u00e9tait de r\u00e9cup\u00e9rer les fichiers XML des articles pour les traiter en local.<\/p>\n<p>Ensuite, j&rsquo;ai fait tourner <a href=\"https:\/\/github.com\/benpro\/PluXmlToWP\">un script php<\/a>, trouv\u00e9 sur le net qui permet de convertir les fichiers XML de PluXml vers du XML importable par WordPress.<\/p>\n<p>En gros, l&rsquo;id\u00e9e c&rsquo;est de passer par le format RSS (XML) que WordPress sait correctement parser et importer. Bon le script se contente de sortir le r\u00e9sultat sur la console donc il faut rediriger dans un fichier. Moi je fais \u00e7a en shell (Mac, mais c&rsquo;est pareil sous linux) :<\/p>\n<pre>#&nbsp;php pluxmltowp.php -a .\/repertoire_fichiers_plxml &gt; mon_fichier_output.xml<\/pre>\n<p>Lorsque la conversion est faite, \u00ab\u00a0y-a-plus-qu&rsquo;\u00e0\u00a0\u00bb importer le (gros) fichier XML produit dans WordPress. Pour cela, il faut se connecter dans l&rsquo;admin du blog et s\u00e9lectionner l&rsquo;import d&rsquo;articles.<\/p>\n<p>Lorsque les articles sont import\u00e9s, le plus gros est fait, mais il reste encore quelques d\u00e9tails. Les cat\u00e9gories ne sont pas import\u00e9es correctement. J&rsquo;aurais pu bidouiller le script php et recommencer tout avec les cat\u00e9gories, mais finalement, j&rsquo;ai pr\u00e9f\u00e9r\u00e9 les refaire \u00e0 la main (je n&rsquo;avais heureusement pas plusieurs centaines d&rsquo;articles \u00e0 classer).<\/p>\n<p>Il y a aussi le probl\u00e8me des images dans les articles. La source pointe vers un r\u00e9pertoire qui faisait partie de la structure PluXML. Par facilit\u00e9, j&rsquo;ai conserv\u00e9 ce r\u00e9pertoire et les images qui s&rsquo;y trouvent. Ainsi, elles s&rsquo;affichent toutes correctement. Si n\u00e9cessaire, pour les d\u00e9placer vers un autre r\u00e9pertoire (des m\u00e9dias de WordPress par exemple), il conviendrait de faire un remplacement de masse du r\u00e9pertoire dans le fichier XML d&rsquo;import avant de l&rsquo;utiliser.<\/p>\n<p>Le commentaires aussi sont normalement import\u00e9s, mais visiblement ils n&rsquo;ont pas \u00e9t\u00e9 pris avec. Heureusement pour \u00e7a que je n&rsquo;avais pas des centaines de commentaires non-plus. Encore une fois, je me suis permis, vu le tout petit nombre, de les re-cr\u00e9er manuellement plut\u00f4t que de me lancer dans du d\u00e9veloppement pour \u00e7a. Je pense que \u00e7a ne doit pas \u00eatre tr\u00e8s lourd, le script en principe les traite, mais \u00e7a n&rsquo;avait pas march\u00e9 pour moi, donc je suppose qu&rsquo;il y avait un petit bug quelque part.<\/p>\n<p>Encore un d\u00e9tail, tous les articles sont import\u00e9s sous l&rsquo;utilisateur qui effectue l&rsquo;import. Et comme c&rsquo;est l&rsquo;admin qui poss\u00e8de l&rsquo;outil d&rsquo;import, c&rsquo;est lui qui devient l&rsquo;auteur de tout ce contenu. Ca fait partie des choses que j&rsquo;ai encore du modifier a posteriori. Pour \u00e7a, je me suis content\u00e9 d&rsquo;un petit update de masse dans la DB mySql de WordPress pour changer l&rsquo;auteur de tous mes articles. Ce n&rsquo;est pas bien compliqu\u00e9.<\/p>\n<p>On commence par afficher les ID des auteurs (c&rsquo;est moins pratique si on \u00e0 plus de 50 auteurs, mais je doute que ce soit le cas ! ;-p ) :<\/p>\n<pre>SELECT ID, display_name FROM wp_users;<\/pre>\n<p>Bon, je ne rentrerai pas dans les d\u00e9tails, du r\u00e9sultat de cette commande. Sachez juste qu&rsquo;il faut, ici, r\u00e9cup\u00e9rer l&rsquo;ID de l&rsquo;auteur auquel on souhaite attribuer tous les posts.<\/p>\n<p>Imaginons que l&rsquo;ID de l&rsquo;auteur soit &lsquo;2&rsquo; et celui de l&rsquo;admin &lsquo;1&rsquo;. Et bien, on proc\u00e8de \u00e0 l&rsquo;update de masse de cette fa\u00e7on :<\/p>\n<pre>UPDATE wp_posts SET post_author='2' WHERE post_author='1';<\/pre>\n<p>&nbsp;<\/p>\n<p>Voil\u00e0, c&rsquo;est tout. J&rsquo;en convient, le script que j&rsquo;ai utilis\u00e9 n&rsquo;est pas parfait, mais c&rsquo;est une tr\u00e8s bonne base de d\u00e9part et puis rien n&#8217;emp\u00eache les volontaires de le modifier et de l&rsquo;am\u00e9liorer.<\/p>\n<p>A bient\u00f4t !<\/p>\n<p>&nbsp;<\/p>\n<p>Source image : <a href=\"http:\/\/pixabay.com\/fr\/r%C3%A9seau-m%C3%A9dias-binaires-ordinateur-65923\/\">pixabay<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il y a plusieurs mois d\u00e9j\u00e0 (d\u00e9but 2013 en fait, \u00e7a date!), j&rsquo;ai d\u00e9cid\u00e9 de changer le moteur de mon blog. Pour une s\u00e9rie de raisons que je ne d\u00e9taillerai pas maintenant, j&rsquo;ai choisi de passer sous WordPress. Et bien entendu, je me suis dit que ce serait int\u00e9ressant de poster les \u00e9tapes qui m&rsquo;ont [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1375,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[3,13],"tags":[23,33,32,31,34],"class_list":["post-1010","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-info","category-web","tag-blog","tag-migration","tag-pluxml","tag-wordpress","tag-xml"],"_links":{"self":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts\/1010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/comments?post=1010"}],"version-history":[{"count":1,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts\/1010\/revisions"}],"predecessor-version":[{"id":1525,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/posts\/1010\/revisions\/1525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/media\/1375"}],"wp:attachment":[{"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/media?parent=1010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/categories?post=1010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ubilogic.net\/blogotof\/wp-json\/wp\/v2\/tags?post=1010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}