Migrare da WordPress

In questa pagina

EmDash migra i contenuti da WordPress. Importa i tuoi post, pagine, media e tassonomie tramite il pannello di amministrazione.

Prima di iniziare

Esporta i tuoi contenuti

In WordPress, vai su Strumenti → Esporta e scarica un file di esportazione completo (.xml).

Fai un backup del tuo sito

Mantieni il tuo sito WordPress attivo finché non verifichi che la migrazione sia riuscita.

Metodi di importazione

EmDash supporta tre metodi per importare contenuti WordPress:

MetodoIdeale perInclude bozzeRichiede auth
Caricamento file WXRMigrazioni completeNo
WordPress.comSiti ospitati su WordPress.comOAuth
REST API (probe)Verificare contenuti prima dell’esportazioneNoOpzionale

Il caricamento del file WXR è consigliato per la maggior parte delle migrazioni. Cattura tutti i contenuti, inclusi bozze, campi personalizzati e post privati.

Importazione file WXR

  1. Esporta da WordPress

    Nel tuo amministratore WordPress, vai su Strumenti → Esporta → Tutti i contenuti → Scarica file di esportazione.

  2. Apri la procedura guidata di importazione

    In EmDash, vai su Admin → Impostazioni → Importa → WordPress.

  3. Carica il tuo file di esportazione

    Trascina e rilascia il tuo file .xml o clicca per sfogliare. Il file viene analizzato nel tuo browser.

  4. Rivedi i contenuti rilevati

    La procedura guidata mostra cosa è stato trovato:

    Found in export:
    ├── Posts: 127 → posts [New collection]
    ├── Pages: 12  → pages [Add fields]
    └── Media: 89 attachments
  5. Configura le mappature

    Attiva quali tipi di post importare. EmDash automaticamente:

    • Crea nuove collezioni per tipi di post non mappati
    • Aggiunge campi mancanti alle collezioni esistenti
    • Avvisa dei conflitti di tipo di campo
  6. Esegui l’importazione

    Clicca su Importa contenuti. Il progresso viene visualizzato mentre ogni elemento viene elaborato.

  7. Importa media (opzionale)

    Dopo l’importazione dei contenuti, scegli se scaricare i file multimediali. EmDash:

    • Scarica dai tuoi URL WordPress
    • Deduplica per hash di contenuto
    • Riscrive automaticamente gli URL nei tuoi contenuti

Conversione dei contenuti

Gutenberg a Portable Text

EmDash converte i blocchi Gutenberg in Portable Text, un formato di contenuto strutturato.

Blocco GutenbergPortable TextNote
core/paragraphblock style=“normal”Marcature inline preservate
core/headingblock style=“h1-h6”Livello dagli attributi del blocco
core/imageimage blockRiferimento media aggiornato
core/listblock with listItem typeOrdinate e non ordinate
core/quoteblock style=“blockquote”Citazione inclusa
core/codecode blockAttributo lingua preservato
core/embedembed blockURL e provider memorizzati
core/gallerygallery blockArray di riferimenti immagine
core/columnscolumns blockContenuto annidato preservato
Blocchi sconosciutihtmlBlockHTML grezzo preservato per revisione

I blocchi sconosciuti vengono memorizzati come htmlBlock con l’HTML originale e i metadati del blocco. Puoi rivederli e convertirli manualmente o creare componenti Portable Text personalizzati per renderizzarli.

Contenuto dell’editor classico

L’HTML dell’editor classico viene convertito in blocchi Portable Text. Gli stili inline (<strong>, <em>, <a>) diventano marcature su span.

Mappatura degli stati

Stato WordPressStato EmDash
publishpublished
draftdraft
pendingpending
privateprivate
futurescheduled
trasharchived

Importazione tassonomie

Categorie e tag vengono importati come tassonomie con gerarchia preservata:

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

Campi personalizzati e ACF

I meta dei post WordPress e i campi ACF vengono analizzati durante l’importazione:

  1. Fase di analisi

    La procedura guidata rileva i campi personalizzati e suggerisce i tipi di campo 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)
  2. Mappatura dei campi

    I campi interni di WordPress (che iniziano con _edit_, _wp_) sono nascosti per impostazione predefinita. I campi dei plugin SEO vengono mappati a un oggetto seo.

  3. Inferenza dei tipi

    EmDash inferisce i tipi di campo dai valori:

    • Stringhe numeriche → number
    • "1", "0", "true", "false"boolean
    • Date ISO → date
    • PHP/JSON serializzato → json
    • ID WordPress (es. _thumbnail_id) → reference

Reindirizzamenti URL

Dopo l’importazione, EmDash genera una mappa di reindirizzamento:

{
	"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" }
	]
}

Applica questi reindirizzamenti a:

  • Regole di reindirizzamento Cloudflare
  • La configurazione di reindirizzamento della tua piattaforma di hosting
  • L’opzione redirects di Astro in astro.config.mjs

Riferimento mappatura concetti

Usa questa tabella quando adatti i pattern di WordPress a EmDash:

WordPressEmDashNote
register_post_type()Collezione nell’UI adminCreato tramite dashboard o API
register_taxonomy()Tassonomia o campo arrayDipende dalla complessità
register_meta()Campo nello schema della collezioneTipizzato, non chiave-valore
WP_QuerygetCollection(filters)Query a runtime
get_post()getEntry(collection, id)Restituisce voce o null
wp_insert_post()POST /_emdash/api/content/{type}REST API
the_content<PortableText value={...} />Rendering Portable Text
add_shortcode()Blocco personalizzato Portable TextRenderer componente personalizzato
register_block_type()Blocco personalizzato Portable TextCome gli shortcode
add_menu_page()Pagina admin pluginSotto /_emdash/admin/
add_action/filter()Hook pluginhooks.content:beforeSave
wp_optionsctx.kvArchivio chiave-valore
wp_postmetaCampi collezioneStrutturato, non chiave-valore
$wpdbctx.storageAccesso diretto allo storage
Categories/TagsTassonomieSupporto gerarchico preservato

Importazione API (Avanzato)

L’importazione WordPress è disponibile tramite il pannello di amministrazione e l’API REST. Usa la procedura guidata di importazione del pannello di amministrazione per la migliore esperienza — fornisce mappatura dei campi, risoluzione dei conflitti e tracciamento del progresso.

Gli endpoint dell’API di importazione si trovano sotto /_emdash/api/import/wordpress/ per l’accesso programmatico.

Risoluzione dei problemi

”Errore di analisi XML”

Il file di esportazione potrebbe essere corrotto o incompleto. Riesporta da WordPress.

Errori di download dei media

Alcune immagini potrebbero essere dietro autenticazione o essere state spostate. L’importazione continua e gli URL falliti vengono registrati per la gestione manuale.

Conflitti di tipo di campo

Se una collezione esistente ha un campo con un tipo incompatibile, la procedura guidata di importazione mostra il conflitto. O:

  • Rinomina il campo EmDash
  • Cambia la mappatura del campo WordPress
  • Elimina e ricrea la collezione

Esportazioni grandi

Per esportazioni superiori a 100MB, considera:

  1. Esportare i tipi di post separatamente in WordPress
  2. Importare ogni file in sequenza
  3. Usare la CLI con --resume per affidabilità

Passaggi successivi