Le WordPress d'aujourd'hui, décodé pour les développeurs

Thèmes

Un blog Tumblr recomposé en thème classique, sans plugin d’import

Comment recréer, dans un thème classique WordPress, la structure d'un blog Tumblr existant lorsqu'aucune extension d'import dédiée n'est disponible pour ce format.

Par WordPress Développement • 8 décembre 2023 • 4 min de lecture • Aucun commentaire
Un blog Tumblr recomposé en thème classique, sans plugin d'import

Comment récupérer plusieurs années de publications hébergées sur Tumblr, quand aucune extension WordPress dédiée à ce format spécifique n’est disponible sur le répertoire officiel ? Le format d’export propriétaire de Tumblr ne correspond à aucun des formats reconnus nativement par l’outil d’import de WordPress, qui couvre WordPress lui-même, Blogger ou des flux au format standard, mais pas ce cas précis.

La solution la plus fiable consiste à passer directement par l’API publique de Tumblr, qui expose chaque publication sous une forme structurée exploitable par un script PHP, puis à recréer chaque contenu dans WordPress avec wp_insert_post(), en respectant autant que possible le type d’origine de chaque publication.

Récupérer les publications via l’API publique de Tumblr

L’API de Tumblr expose un point d’accès public qui renvoie les publications d’un blog au format JSON, sans authentification pour un blog dont le contenu est public. Un script PHP exécuté en ligne de commande, ou intégré temporairement à un fichier du thème, peut interroger cette API par lots successifs et enregistrer les résultats bruts avant tout traitement :

$reponse = wp_remote_get(
    'https://api.tumblr.com/v2/blog/monblog.tumblr.com/posts?api_key=CLE_API&limit=20&offset=0'
);
$donnees = json_decode( wp_remote_retrieve_body( $reponse ), true );

Chaque publication renvoyée contient un champ type qui distingue les publications textuelles, les photos, les citations, les liens, les extraits audio, les vidéos et les conversations, sept formes de contenu qui n’ont pas d’équivalent unique dans un article WordPress standard.

Recréer chaque publication avec wp_insert_post()

Une fois les données récupérées, chaque publication est recréée via wp_insert_post(), avec un mappage du type Tumblr vers un format de publication WordPress ou une simple structure HTML adaptée :

$id_article = wp_insert_post( [
    'post_title'   => $publication['title'] ?? '',
    'post_content' => $contenu_html,
    'post_date'    => date( 'Y-m-d H:i:s', $publication['timestamp'] ),
    'post_status'  => 'publish',
] );
if ( $id_article && 'photo' === $publication['type'] ) {
    set_post_format( $id_article, 'image' );
}
L'essentiel à retenir : L'API Tumblr expose les publications au format JSON, exploitable sans extension ; wp_insert_post() recrée chaque publication avec son type de contenu d'origine ; Un mappage manuel des formats évite de tout convertir en simple article de blog

Ce que le mappage doit préserver, publication par publication

Une conversion trop rapide, qui transforme toutes les publications en simples articles de blog identiques, fait perdre une partie du sens éditorial d’origine. Une citation Tumblr, par exemple, gagne à être recréée avec une balise <blockquote> plutôt qu’un simple paragraphe, tandis qu’une publication de type lien mérite de conserver l’URL d’origine sous forme de bouton visible plutôt que noyée dans le texte.

Type TumblrTraitement recommandé côté WordPress
textArticle standard, contenu HTML conservé tel quel
photoArticle avec image téléchargée et associée en image mise en avant
quoteContenu enveloppé dans une balise blockquote
linkURL d’origine conservée en évidence dans le contenu
audio / videoFichier média téléchargé si les droits le permettent, sinon lien conservé

Télécharger les médias associés plutôt que de dépendre de Tumblr

Les images et fichiers audio référencés dans les publications Tumblr restent hébergés sur les serveurs de Tumblr tant qu’ils ne sont pas explicitement récupérés. La fonction media_sideload_image(), disponible dans le cœur de WordPress, permet de télécharger une image distante et de l’ajouter directement à la médiathèque du site, en l’associant à l’article correspondant, ce qui évite une dépendance permanente envers un service tiers pour l’affichage du contenu migré.

Un import de contenu qui laisse les médias sur la plateforme d’origine n’est jamais une migration complète : le jour où cette plateforme change ses règles d’accès, les images disparaissent silencieusement du site.

Adapter le thème classique aux formats retrouvés

Un thème classique qui reçoit ce contenu migré gagne à déclarer explicitement le support des formats de publication concernés, avec add_theme_support( 'post-formats', [ 'image', 'quote', 'link', 'audio', 'video' ] ), puis à prévoir un gabarit content-{format}.php distinct pour chacun, plutôt que d’afficher toutes les publications avec un seul gabarit générique qui gommerait les différences retranscrites depuis Tumblr.

En résumé

L’absence d’extension d’import dédiée à un format propriétaire ne bloque pas la migration : l’API publique de Tumblr, combinée à wp_insert_post() et à un mappage soigné des types de publications, permet de reconstituer un historique de contenu fidèle à sa forme d’origine. Le travail le plus long ne se situe pas dans la récupération des données, mais dans la préservation du sens éditorial propre à chaque type de publication d’origine.

Laisser un commentaire

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

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi