EmDash migre le contenu depuis WordPress. Importez vos articles, pages, médias et taxonomies via le tableau de bord administrateur.
Avant de commencer
Exportez votre contenu
Dans WordPress, allez dans Outils → Exporter et téléchargez un fichier d’exportation complet (.xml).
Sauvegardez votre site
Gardez votre site WordPress en ligne jusqu’à ce que vous ayez vérifié que la migration a réussi.
Méthodes d’importation
EmDash prend en charge trois méthodes pour importer du contenu WordPress :
| Méthode | Idéal pour | Inclut les brouillons | Nécessite auth |
|---|---|---|---|
| Téléchargement de fichier WXR | Migrations complètes | Oui | Non |
| WordPress.com | Sites hébergés sur WordPress.com | Oui | OAuth |
| REST API (sonde) | Vérifier le contenu avant l’exportation | Non | Optionnel |
Le téléchargement de fichier WXR est recommandé pour la plupart des migrations. Il capture tout le contenu, y compris les brouillons, les champs personnalisés et les articles privés.
Importation de fichier WXR
-
Exporter depuis WordPress
Dans votre administration WordPress, allez dans Outils → Exporter → Tout le contenu → Télécharger le fichier d’exportation.
-
Ouvrir l’assistant d’importation
Dans EmDash, allez dans Admin → Paramètres → Importer → WordPress.
-
Télécharger votre fichier d’exportation
Glissez-déposez votre fichier
.xmlou cliquez pour parcourir. Le fichier est analysé dans votre navigateur. -
Vérifier le contenu détecté
L’assistant montre ce qui a été trouvé :
Found in export: ├── Posts: 127 → posts [New collection] ├── Pages: 12 → pages [Add fields] └── Media: 89 attachments -
Configurer les mappages
Basculez les types de publication à importer. EmDash fait automatiquement :
- Crée de nouvelles collections pour les types de publication non mappés
- Ajoute les champs manquants aux collections existantes
- Avertit des conflits de types de champs
-
Exécuter l’importation
Cliquez sur Importer le contenu. La progression s’affiche au fur et à mesure que chaque élément est traité.
-
Importer les médias (optionnel)
Après l’importation du contenu, choisissez si vous souhaitez télécharger les fichiers médias. EmDash :
- Télécharge depuis vos URLs WordPress
- Déduplique par hash de contenu
- Réécrit automatiquement les URLs dans votre contenu
Conversion de contenu
Gutenberg vers Portable Text
EmDash convertit les blocs Gutenberg en Portable Text, un format de contenu structuré.
| Bloc Gutenberg | Portable Text | Notes |
|---|---|---|
core/paragraph | block style=“normal” | Marques en ligne préservées |
core/heading | block style=“h1-h6” | Niveau depuis les attributs de bloc |
core/image | image block | Référence média mise à jour |
core/list | block with listItem type | Ordonnées et non ordonnées |
core/quote | block style=“blockquote” | Citation incluse |
core/code | code block | Attribut de langue préservé |
core/embed | embed block | URL et fournisseur stockés |
core/gallery | gallery block | Tableau de références d’images |
core/columns | columns block | Contenu imbriqué préservé |
| Blocs inconnus | htmlBlock | HTML brut préservé pour révision |
Les blocs inconnus sont stockés comme htmlBlock avec le HTML original et les métadonnées du bloc. Vous pouvez les réviser et les convertir manuellement ou créer des composants Portable Text personnalisés pour les rendre.
Contenu de l’éditeur classique
Le HTML de l’éditeur classique est converti en blocs Portable Text. Les styles en ligne (<strong>, <em>, <a>) deviennent des marques sur les spans.
Mappage des statuts
| Statut WordPress | Statut EmDash |
|---|---|
publish | published |
draft | draft |
pending | pending |
private | private |
future | scheduled |
trash | archived |
Importation de taxonomie
Les catégories et tags sont importés comme taxonomies avec hiérarchie préservée :
WordPress: EmDash:
├── Categories (hierarchical) ├── taxonomies table
│ ├── News │ ├── category/news
│ │ ├── Local │ ├── category/local (parent: news)
│ │ └── World │ ├── category/world (parent: news)
│ └── Sports │ └── category/sports
└── Tags (flat) └── content_taxonomies junction
├── featured ├── tag/featured
└── breaking └── tag/breaking
Champs personnalisés et ACF
Les méta de publication WordPress et les champs ACF sont analysés pendant l’importation :
-
Phase d’analyse
L’assistant détecte les champs personnalisés et suggère les types de champs EmDash :
Custom Fields: ├── subtitle (string, 45 posts) ├── _yoast_wpseo_title → seo.title (string, 127 posts) ├── _thumbnail_id → featuredImage (reference, 89 posts) └── price (number, 23 posts) -
Mappage des champs
Les champs internes WordPress (commençant par
_edit_,_wp_) sont masqués par défaut. Les champs de plugins SEO sont mappés vers un objetseo. -
Inférence de type
EmDash infère les types de champs à partir des valeurs :
- Chaînes numériques →
number "1","0","true","false"→boolean- Dates ISO →
date - PHP/JSON sérialisé →
json - IDs WordPress (ex.
_thumbnail_id) →reference
- Chaînes numériques →
Redirections d’URL
Après l’importation, EmDash génère une carte de redirection :
{
"redirects": [
{ "from": "/?p=123", "to": "/posts/hello-world" },
{ "from": "/2024/01/hello-world/", "to": "/posts/hello-world" },
{ "from": "/category/news/", "to": "/categories/news" }
],
"feeds": [
{ "from": "/feed/", "to": "/rss.xml" },
{ "from": "/feed/atom/", "to": "/atom.xml" }
]
}
Appliquez ces redirections à :
- Règles de redirection Cloudflare
- La configuration de redirection de votre plateforme d’hébergement
- L’option
redirectsd’Astro dansastro.config.mjs
Référence de mappage de concepts
Utilisez ce tableau lors de l’adaptation des modèles WordPress à EmDash :
| WordPress | EmDash | Notes |
|---|---|---|
register_post_type() | Collection dans l’UI admin | Créé via le tableau de bord ou l’API |
register_taxonomy() | Taxonomie ou champ de tableau | Dépend de la complexité |
register_meta() | Champ dans le schéma de collection | Typé, pas clé-valeur |
WP_Query | getCollection(filters) | Requêtes à l’exécution |
get_post() | getEntry(collection, id) | Renvoie l’entrée ou null |
wp_insert_post() | POST /_emdash/api/content/{type} | REST API |
the_content | <PortableText value={...} /> | Rendu Portable Text |
add_shortcode() | Bloc personnalisé Portable Text | Rendu de composant personnalisé |
register_block_type() | Bloc personnalisé Portable Text | Comme les shortcodes |
add_menu_page() | Page d’administration de plugin | Sous /_emdash/admin/ |
add_action/filter() | Hooks de plugin | hooks.content:beforeSave |
wp_options | ctx.kv | Stockage clé-valeur |
wp_postmeta | Champs de collection | Structuré, pas clé-valeur |
$wpdb | ctx.storage | Accès direct au stockage |
| Categories/Tags | Taxonomies | Support hiérarchique préservé |
Importation API (Avancé)
L’importation WordPress est disponible via le tableau de bord administrateur et l’API REST. Utilisez l’assistant d’importation du tableau de bord administrateur pour la meilleure expérience — il fournit le mappage des champs, la résolution des conflits et le suivi de la progression.
Les endpoints de l’API d’importation sont sous /_emdash/api/import/wordpress/ pour un accès programmatique.
Dépannage
”Erreur d’analyse XML”
Le fichier d’exportation peut être corrompu ou incomplet. Réexportez depuis WordPress.
Échecs de téléchargement des médias
Certaines images peuvent être derrière une authentification ou avoir été déplacées. L’importation continue et les URLs échouées sont enregistrées pour un traitement manuel.
Conflits de types de champs
Si une collection existante a un champ avec un type incompatible, l’assistant d’importation affiche le conflit. Soit :
- Renommez le champ EmDash
- Changez le mappage de champ WordPress
- Supprimez et recréez la collection
Grandes exportations
Pour les exportations de plus de 100 Mo, envisagez :
- Exporter les types de publication séparément dans WordPress
- Importer chaque fichier séquentiellement
- Utiliser la CLI avec
--resumepour la fiabilité
Prochaines étapes
- Importation de contenu — Autres sources et méthodes d’importation
- Portage de plugins — Migrer les fonctionnalités de plugins WordPress
- Travailler avec le contenu — Interroger et rendre votre contenu importé