EmDash importe du contenu depuis WordPress et d’autres plateformes. Chaque source d’importation détecte une plateforme, analyse son contenu et le récupère dans votre site.
Sources d’importation
| ID de source | Plateforme | Sonde | OAuth | Importation complète |
|---|---|---|---|---|
wxr | Fichier d’export WordPress | Non | Non | Oui |
wordpress-com | WordPress.com | Oui | Oui | Oui |
wordpress-rest | WordPress auto-hébergé | Oui | Non | Sonde uniquement |
Téléchargement de fichier WXR
La méthode d’importation la plus complète. Téléchargez un fichier d’export WordPress eXtended RSS (WXR) directement vers le tableau de bord d’administration.
Capacités :
- Tous les types de publication (y compris personnalisés)
- Tous les champs meta
- Brouillons et publications privées
- Hiérarchie de taxonomie complète
- Métadonnées des pièces jointes média
Comment obtenir un fichier WXR :
- Dans l’admin WordPress, allez dans Outils → Exporter
- Sélectionnez Tout le contenu ou des types de publication spécifiques
- Cliquez sur Télécharger le fichier d’export
- Téléchargez le fichier
.xmlvers EmDash
OAuth WordPress.com
Pour les sites hébergés sur WordPress.com, connectez-vous via OAuth pour importer sans exports manuels de fichiers.
- Entrez l’URL de votre site WordPress.com
- Cliquez sur Se connecter avec WordPress.com
- Autorisez EmDash dans la popup WordPress.com
- Sélectionnez le contenu à importer
Ce qui est inclus :
- Contenu publié et brouillons
- Publications privées (avec autorisation)
- Fichiers média via API
- Champs personnalisés exposés à l’API REST
Sonde de l’API REST WordPress
Lorsque vous entrez une URL, EmDash sonde le site pour détecter WordPress et afficher le contenu disponible :
Détecté : WordPress 6.4
├── Publications : 127 (publiées)
├── Pages : 12 (publiées)
└── Médias : 89 fichiers
Remarque : Les brouillons et le contenu privé nécessitent une authentification
ou un export WXR complet.
La sonde REST est informative. Pour des importations complètes, elle suggère de télécharger un fichier WXR ou de se connecter via OAuth (pour WordPress.com).
Flux d’importation
Toutes les sources suivent le même flux :
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Connecter │────▶│ Analyser │────▶│ Préparer │────▶│ Exécuter │
│ (sonde/ │ │ (vérifier │ │ (créer │ │ (importer │
│ télécharg.)│ │ schéma) │ │ schéma) │ │ contenu) │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
Étape 1 : Connecter
Entrez une URL pour sonder ou téléchargez un fichier directement.
Le sondage d’URL exécute toutes les sources enregistrées en parallèle. La correspondance avec la plus haute confiance détermine l’action suggérée suivante :
- Site WordPress.com → Proposer une connexion OAuth
- WordPress auto-hébergé → Afficher les instructions d’export
- Inconnu → Suggérer un téléchargement de fichier
Étape 2 : Analyser
La source analyse le contenu et vérifie la compatibilité du schéma :
Types de publication :
├── post (127) → posts [Nouvelle collection]
├── page (12) → pages [Existante, compatible]
├── product (45) → products [Ajouter 3 champs]
└── revision (234) → [Ignorer - type interne]
Modifications de schéma requises :
├── Créer la collection : posts
├── Ajouter des champs à pages : featured_image
└── Créer la collection : products
Chaque type de publication affiche son statut :
| Statut | Signification |
|---|---|
| Prêt | La collection existe avec des champs compatibles |
| Nouvelle collection | Sera créée automatiquement |
| Ajouter des champs | La collection existe, des champs manquants sont ajoutés |
| Incompatible | Conflits de type de champ (correction manuelle nécessaire) |
Étape 3 : Préparer le schéma
Cliquez sur Créer le schéma et importer pour :
- Créer de nouvelles collections
- Ajouter les champs manquants avec les types de colonne corrects
- Configurer les tables de contenu avec des index
Étape 4 : Exécuter l’importation
Le contenu est importé séquentiellement :
- Gutenberg/HTML converti en Portable Text
- Statut WordPress mappé au statut EmDash
- Auteurs WordPress mappés à la propriété (
authorId) et aux signatures de présentation - Taxonomies créées et liées
- Blocs réutilisables (
wp_block) importés en tant que Sections - Progression affichée en temps réel
Comportement d’importation des auteurs :
- Si un mappage d’auteur pointe vers un utilisateur EmDash, la propriété est définie sur cet utilisateur et une signature liée est créée/réutilisée pour le même utilisateur.
- S’il n’y a pas de mappage d’utilisateur, une signature invité est créée/réutilisée à partir de l’identité de l’auteur WordPress.
- Les entrées importées obtiennent des crédits de signature ordonnés, avec le premier crédit défini comme
primaryBylineId.
Étape 5 : Importation de médias (Optionnel)
Après le contenu, importez éventuellement les médias :
-
Analyse — Affiche le nombre de pièces jointes par type
Médias trouvés : ├── Images : 75 fichiers ├── Vidéo : 10 fichiers └── Autre : 4 fichiers -
Téléchargement — Diffuse depuis les URLs WordPress avec la progression
Importation des médias... ├── 45 sur 89 (50%) ├── Actuel : vacation-photo.jpg └── Statut : Téléchargement en cours -
Réécriture des URLs — Le contenu est automatiquement mis à jour avec les nouvelles URLs
L’importation de médias utilise le hachage de contenu (xxHash64) pour la déduplication. La même image utilisée dans plusieurs publications est stockée une seule fois.
Points de terminaison API
Le système d’importation expose ces points de terminaison :
Sonder une URL
Détectez la plateforme derrière une URL avec une requête de sonde :
POST /_emdash/api/import/probe
Content-Type: application/json
{ "url": "https://example.com" }
La réponse contient la plateforme détectée et l’action suggérée.
Analyser WXR
Téléchargez un fichier WXR pour analyser ses types de publication et sa compatibilité de schéma :
POST /_emdash/api/import/wordpress/analyze
Content-Type: multipart/form-data
file: [Export WordPress .xml]
La réponse contient l’analyse des types de publication avec la compatibilité du schéma.
Préparer le schéma
Créez les collections et les champs pour les types de publication sélectionnés :
POST /_emdash/api/import/wordpress/prepare
Content-Type: application/json
{
"postTypes": [
{ "name": "post", "collection": "posts", "enabled": true }
]
}
Exécuter l’importation
Importez le contenu dans les collections mappées :
POST /_emdash/api/import/wordpress/execute
Content-Type: multipart/form-data
file: [Export WordPress .xml]
config: { "postTypeMappings": { "post": { "collection": "posts" } } }
Importer les médias
Téléchargez et stockez les pièces jointes média référencées par l’importation :
POST /_emdash/api/import/wordpress/media
Content-Type: application/json
{
"attachments": [{ "id": 123, "url": "https://..." }],
"stream": true
}
La réponse diffuse les mises à jour de progression NDJSON pendant le téléchargement et l’upload.
Réécrire les URLs
Remplacez les anciennes URLs de médias dans le contenu importé par leurs équivalents stockés :
POST /_emdash/api/import/wordpress/rewrite-urls
Content-Type: application/json
{
"urlMap": { "https://old.com/image.jpg": "/_emdash/media/abc123" }
}
Gestion des erreurs
Erreurs récupérables
- Timeout réseau — Réessai avec backoff
- Échec d’analyse d’un seul élément — Journalisé, ignoré, l’importation continue
- Échec de téléchargement de média — Marqué pour traitement manuel
Erreurs fatales
- Format de fichier invalide — L’importation s’arrête avec un message d’erreur
- Connexion à la base de données perdue — L’importation est mise en pause, permet la reprise
- Quota de stockage dépassé — L’importation s’arrête, affiche l’utilisation
Rapport d’erreur
Après la fin d’une importation, EmDash affiche un résumé de ce qui a réussi, de ce qui a été ajusté et de ce qui a échoué :
Importation terminée
✓ 125 publications importées
✓ 12 pages importées
✓ 85 références média enregistrées
⚠ 2 éléments ont eu des avertissements :
- Publication "Special Characters ñ" - encodage du titre corrigé
- Page "About" - slug dupliqué renommé en "about-1"
✗ 1 élément a échoué :
- ID de publication 456 - erreur d'analyse de contenu (enregistré comme brouillon)
Les éléments échoués sont enregistrés comme brouillons avec le contenu original dans _importError pour examen.
Sources personnalisées
Pour importer depuis une plateforme que les sources intégrées ne couvrent pas, implémentez l’interface ImportSource et enregistrez-la sur l’intégration :
import { mySource } from "./src/import/custom-source";
export default defineConfig({
integrations: [
emdash({
import: { sources: [mySource] },
}),
],
});
L’interface (probe, analyze, fetchContent) et la forme de sortie normalisée sont documentées dans Architecture (internes).
Prochaines étapes
- Migration WordPress — Guide complet de migration WordPress
- Portage de plugins — Porter des plugins WordPress vers EmDash