Migration von WordPress

Auf dieser Seite

EmDash migriert Inhalte von WordPress. Importieren Sie Ihre Beiträge, Seiten, Medien und Taxonomien über das Admin-Dashboard.

Bevor Sie beginnen

Exportieren Sie Ihre Inhalte

Gehen Sie in WordPress zu Tools → Exportieren und laden Sie eine vollständige Exportdatei (.xml) herunter.

Sichern Sie Ihre Website

Lassen Sie Ihre WordPress-Website laufen, bis Sie überprüft haben, dass die Migration erfolgreich war.

Import-Methoden

EmDash unterstützt drei Methoden zum Importieren von WordPress-Inhalten:

MethodeAm besten fürEnthält EntwürfeErfordert Auth
WXR-Datei-UploadVollständige MigrationenJaNein
WordPress.comWordPress.com gehostete WebsitesJaOAuth
REST API (probe)Inhalte vor dem Export überprüfenNeinOptional

Der WXR-Datei-Upload wird für die meisten Migrationen empfohlen. Er erfasst alle Inhalte, einschließlich Entwürfe, benutzerdefinierte Felder und private Beiträge.

WXR-Datei-Import

  1. Export aus WordPress

    Gehen Sie in Ihrem WordPress-Admin zu Tools → Exportieren → Alle Inhalte → Exportdatei herunterladen.

  2. Öffnen Sie den Import-Assistenten

    Gehen Sie in EmDash zu Admin → Einstellungen → Importieren → WordPress.

  3. Laden Sie Ihre Exportdatei hoch

    Ziehen Sie Ihre .xml-Datei per Drag & Drop oder klicken Sie zum Durchsuchen. Die Datei wird in Ihrem Browser geparst.

  4. Überprüfen Sie erkannte Inhalte

    Der Assistent zeigt, was gefunden wurde:

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

    Schalten Sie um, welche Beitragstypen importiert werden sollen. EmDash macht automatisch:

    • Erstellt neue Sammlungen für nicht zugeordnete Beitragstypen
    • Fügt fehlende Felder zu bestehenden Sammlungen hinzu
    • Warnt vor Feldtypenkonflikten
  6. Führen Sie den Import aus

    Klicken Sie auf Inhalt importieren. Der Fortschritt wird angezeigt, während jedes Element verarbeitet wird.

  7. Medien importieren (optional)

    Nach dem Import von Inhalten wählen Sie aus, ob Mediendateien heruntergeladen werden sollen. EmDash:

    • Lädt von Ihren WordPress-URLs herunter
    • Dedupliziert nach Inhalts-Hash
    • Schreibt URLs in Ihren Inhalten automatisch um

Inhaltskonvertierung

Gutenberg zu Portable Text

EmDash konvertiert Gutenberg-Blöcke in Portable Text, ein strukturiertes Inhaltsformat.

Gutenberg-BlockPortable TextHinweise
core/paragraphblock style=“normal”Inline-Markierungen beibehalten
core/headingblock style=“h1-h6”Ebene aus Block-Attributen
core/imageimage blockMedienreferenz aktualisiert
core/listblock with listItem typeGeordnet und ungeordnet
core/quoteblock style=“blockquote”Zitat enthalten
core/codecode blockSprachattribut beibehalten
core/embedembed blockURL und Anbieter gespeichert
core/gallerygallery blockArray von Bildreferenzen
core/columnscolumns blockVerschachtelter Inhalt erhalten
Unbekannte BlöckehtmlBlockRohes HTML zur Überprüfung erhalten

Unbekannte Blöcke werden als htmlBlock mit dem ursprünglichen HTML und Block-Metadaten gespeichert. Sie können diese manuell überprüfen und konvertieren oder benutzerdefinierte Portable Text-Komponenten erstellen, um sie zu rendern.

Classic Editor-Inhalte

HTML aus dem Classic Editor wird in Portable Text-Blöcke konvertiert. Inline-Stile (<strong>, <em>, <a>) werden zu Markierungen auf Spans.

Status-Zuordnung

WordPress-StatusEmDash-Status
publishpublished
draftdraft
pendingpending
privateprivate
futurescheduled
trasharchived

Taxonomie-Import

Kategorien und Tags werden als Taxonomien mit erhaltener Hierarchie importiert:

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

Benutzerdefinierte Felder und ACF

WordPress-Post-Meta und ACF-Felder werden während des Imports analysiert:

  1. Analysephase

    Der Assistent erkennt benutzerdefinierte Felder und schlägt EmDash-Feldtypen vor:

    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. Feldzuordnung

    Interne WordPress-Felder (beginnend mit _edit_, _wp_) sind standardmäßig ausgeblendet. SEO-Plugin-Felder werden einem seo-Objekt zugeordnet.

  3. Typinferenz

    EmDash leitet Feldtypen aus Werten ab:

    • Numerische Zeichenfolgen → number
    • "1", "0", "true", "false"boolean
    • ISO-Daten → date
    • Serialisiertes PHP/JSON → json
    • WordPress-IDs (z.B. _thumbnail_id) → reference

URL-Weiterleitungen

Nach dem Import generiert EmDash eine Weiterleitungskarte:

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

Wenden Sie diese Weiterleitungen an auf:

  • Cloudflare-Weiterleitungsregeln
  • Die Weiterleitungskonfiguration Ihrer Hosting-Plattform
  • Astros redirects-Option in astro.config.mjs

Konzept-Zuordnungsreferenz

Verwenden Sie diese Tabelle, wenn Sie WordPress-Muster an EmDash anpassen:

WordPressEmDashHinweise
register_post_type()Sammlung in Admin-UIErstellt über Dashboard oder API
register_taxonomy()Taxonomie oder Array-FeldAbhängig von Komplexität
register_meta()Feld im SammlungsschemaTypisiert, nicht Key-Value
WP_QuerygetCollection(filters)Laufzeitabfragen
get_post()getEntry(collection, id)Gibt Eintrag oder null zurück
wp_insert_post()POST /_emdash/api/content/{type}REST API
the_content<PortableText value={...} />Portable Text-Rendering
add_shortcode()Portable Text Custom BlockBenutzerdefinierter Komponenten-Renderer
register_block_type()Portable Text Custom BlockWie Shortcodes
add_menu_page()Plugin-Admin-SeiteUnter /_emdash/admin/
add_action/filter()Plugin-Hookshooks.content:beforeSave
wp_optionsctx.kvKey-Value-Speicher
wp_postmetaSammlungsfelderStrukturiert, nicht Key-Value
$wpdbctx.storageDirekter Speicherzugriff
Categories/TagsTaxonomienHierarchieunterstützung erhalten

API-Import (Erweitert)

Der WordPress-Import ist über das Admin-Dashboard und die REST API verfügbar. Verwenden Sie den Import-Assistenten im Admin-Dashboard für die beste Erfahrung — er bietet Feldzuordnung, Konfliktlösung und Fortschrittsverfolgung.

Die Import-API-Endpunkte befinden sich unter /_emdash/api/import/wordpress/ für programmatischen Zugriff.

Fehlerbehebung

”XML-Parsing-Fehler”

Die Exportdatei ist möglicherweise beschädigt oder unvollständig. Exportieren Sie erneut aus WordPress.

Medien-Download-Fehler

Einige Bilder befinden sich möglicherweise hinter Authentifizierung oder wurden verschoben. Der Import wird fortgesetzt und fehlgeschlagene URLs werden zur manuellen Behandlung protokolliert.

Feldtypenkonflikte

Wenn eine bestehende Sammlung ein Feld mit einem inkompatiblen Typ hat, zeigt der Import-Assistent den Konflikt an. Entweder:

  • Benennen Sie das EmDash-Feld um
  • Ändern Sie die WordPress-Feldzuordnung
  • Löschen und erstellen Sie die Sammlung neu

Große Exporte

Für Exporte über 100 MB erwägen Sie:

  1. Exportieren Sie Beitragstypen in WordPress separat
  2. Importieren Sie jede Datei nacheinander
  3. Verwenden Sie die CLI mit --resume für Zuverlässigkeit

Nächste Schritte