Im Jahr 2013 haben Sie Tabellen aus WordPress noch per Kopieren und Einfügen nach Excel gebracht. Heute ist Datenportabilität eine gesetzliche Anforderung (DSGVO) und eine geschäftliche Notwendigkeit.
Egal, ob Sie WooCommerce-Bestellungen migrieren oder Benutzerdaten sichern: Ein Export braucht nicht zwingend ein Plugin. Sie müssen PHP-Streams und WP-CLI verstehen.
Nutzen Sie für die meisten Exporte schlichtes CSV, streamen Sie Zeilen mit fputcsv() für Browser-Downloads, verarbeiten Sie Daten mit WP_Query in Blöcken und wechseln Sie zu WP-CLI, sobald ein Admin-Request an Speicher- oder Timeout-Grenzen stößt. Die REST API ist die richtige Wahl, wenn ein anderes System strukturierte Daten statt einer Datei braucht.
Wie exportiert man WordPress-Daten nach Excel
Drei Wege decken fast jeden Exportauftrag in WordPress ab:
- PHP innerhalb von WordPress für Admin-Downloads mit Berechtigungsprüfung
- WP-CLI für große Datensätze und geplante Jobs auf dem Server
- REST API für Dashboards, Data Warehouses, CRMs und Headless-Konsumenten
Gelegentliche, kleine Exporte passen gut zu einem PHP-Download. Wiederkehrende oder sehr große Tabellen gehören auf die Kommandozeile. Externe Systeme sollten JSON über REST abholen und das CSV außerhalb von WordPress erzeugen, wenn sie noch eine Tabelle brauchen.
Wählen Sie die Methode nach dem Fehlerbild. Browser-Downloads scheitern an Timeouts. Plugins scheitern, wenn sie ein komplettes Tabellenobjekt in einem einzigen Request aufbauen. Ad-hoc-SQL-Dumps scheitern, wenn sich Spaltennamen nach einem Plugin-Update ändern. Nehmen Sie den Weg, der den Export auch nächsten Monat reproduzierbar hält, nicht nur heute.
Was Werkzeuge > Exportieren in WordPress exportiert
WordPress bringt einen Exporter im Core mit, aber er erzeugt keine Tabelle. Laut der Dokumentation zur Seite Werkzeuge > Exportieren ist die heruntergeladene Datei ein XML im Format WordPress eXtended RSS (WXR) mit Beiträgen, Seiten, Custom Post Types, Kommentaren, benutzerdefinierten Feldern, Kategorien, Schlagwörtern, eigenen Taxonomien und Benutzern. Bei Beiträgen oder Seiten können Sie nach Kategorie, Autor, Zeitraum und Status filtern.
Diese Datei ist für Werkzeuge > Importieren > WordPress auf einer anderen Installation gedacht. Excel kann das XML öffnen, aber jeder Eintrag schleppt das komplette HTML des Inhalts, die Metadaten und die Kommentare mit, als Tabelle taugt es daher kaum. Nutzen Sie WXR für Migrationen und Inhaltskopien. Nutzen Sie CSV, wenn ein Mensch Spalten filtern, summieren oder abgleichen muss.
Dasselbe WXR erzeugt wp export auf dem Server. Der Befehl kennt Filter wie --post_type, --start_date und --end_date (Format JJJJ-MM-TT), --post_status und --author, teilt Dateien standardmäßig bei 15 MB (--max_file_size, -1 für unbegrenzt) und schreibt mit --stdout das XML auf die Standardausgabe:
wp export --dir=/tmp/exports/ --post_type=post --start_date=2026-01-01 --end_date=2026-06-30CSV oder XLSX für den WordPress-Export
Beginnen Sie mit CSV, außer ein Stakeholder verlangt zwingend .xlsx.
Stärken von CSV
- Einfach mit PHP oder WP-CLI zu erzeugen
- Einfach im Texteditor zu prüfen und zu debuggen
- Öffnet sich in Excel, Numbers und Google Sheets
- Vermeidet XLSX-Bibliotheken und deren Speicherbedarf
Nachteile von XLSX
- Binärformat mit Arbeitsblättern, Formatvorlagen und gemeinsamen Zeichenketten
- Braucht eine Bibliothek wie
PhpSpreadsheetoder einen Konvertierungsschritt nach dem Export - Baut mehr Zustand im Speicher auf, bevor die Datei fertig ist
- Lässt sich während eines langen HTTP-Requests schwerer sicher streamen
Sie könnten versucht sein, mit PhpSpreadsheet echte .xlsx-Dateien zu erzeugen. Für große Datensätze ist das der falsche Ort: Die Datei entsteht im RAM, bevor das erste Byte ausgeliefert wird. Excel öffnet CSV-Dateien direkt, eine binäre .xlsx-Datei brauchen Sie selten, außer für Formeln oder Formatierungen. Praktisches Muster: CSV aus WordPress exportieren und erst danach mit Excel, LibreOffice oder einem kleinen Offline-Skript umwandeln, wenn jemand auf XLSX besteht. So bleibt der WordPress-Request schlank.
Excel-Tipp: UTF-8-CSV-Dateien brauchen manchmal ein BOM (\xEF\xBB\xBF), damit Excel unter Windows Umlaute und ß korrekt anzeigt. Der Microsoft-Support bestätigt das: Eine UTF-8-CSV mit BOM öffnet sich per Doppelklick normal. Ohne BOM ist der dokumentierte Weg Daten > Daten abrufen > Aus Datei > Aus Text/CSV, wo sich die Kodierung vor dem Laden wählen lässt. Schreiben Sie das BOM vor die Kopfzeile, wenn Ihr Publikum in Excel arbeitet, und lassen Sie es weg, wenn die Datei ein anderes Skript füttert, denn viele Parser lesen diese drei Bytes als Teil des ersten Spaltennamens.
Wie exportiert man WordPress-Benutzer mit PHP nach CSV
Wenn Sie einen Button “Bericht herunterladen” für das Dashboard Ihres Kunden bauen, nutzen Sie das native fputcsv von PHP. Laden Sie niemals alle Daten in ein Array ($data[] = ...), sonst erschöpfen Sie das Speicherlimit. Streamen Sie die Daten stattdessen direkt an den Browser. Zuerst kommen Berechtigungsprüfung und Nonce, dann Header, php://output, Kopfzeile und Datenzeilen seitenweise.
add_action( 'admin_post_wppoland_export_users', 'wppoland_export_users_csv' );
function wppoland_export_users_csv() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( 'Zugriff verweigert.' );
}
check_admin_referer( 'wppoland_export_users' );
header( 'Content-Type: text/csv; charset=utf-8' );
header( 'Content-Disposition: attachment; filename="benutzer-export-' . gmdate( 'Y-m-d' ) . '.csv"' );
$fp = fopen( 'php://output', 'w' );
// Optionales BOM für Excel unter Windows:
// fwrite( $fp, "\xEF\xBB\xBF" );
fputcsv( $fp, array( 'ID', 'Benutzername', 'E-Mail', 'Registriert' ), ',', '"', '' );
$args = array(
'number' => 100,
'offset' => 0,
'orderby' => 'ID',
'order' => 'ASC',
);
while ( $users = get_users( $args ) ) {
foreach ( $users as $user ) {
fputcsv(
$fp,
array( $user->ID, $user->user_login, $user->user_email, $user->user_registered ),
',',
'"',
''
);
}
$args['offset'] += 100;
if ( count( $users ) < 100 ) {
break;
}
}
fclose( $fp );
exit;
}Das Muster eignet sich für kleinere Exporte und interne Admin-Werkzeuge. Jede Zeile geht in den Stream, sobald sie geladen ist, und der Speicher bleibt bei einem Block von 100 Benutzern.
Schützen Sie den Endpunkt mit Nonce und Berechtigungsprüfung. Das Formular, das den Download auslöst, muss wp_nonce_field( 'wppoland_export_users' ) enthalten, damit check_admin_referer() es prüfen kann. Benutzer- und Bestellexporte enthalten oft personenbezogene Daten. Behandeln Sie sie wie jede andere privilegierte Admin-Aktion nach DSGVO-Maßstäben: Protokollieren Sie, wer den Export ausgelöst hat, und halten Sie die Datei von öffentlichen URLs fern.
fputcsv in PHP 8.4 und der Parameter escape
Die Beispiele in diesem Leitfaden übergeben fputcsv() fünf Argumente, und das hat einen Grund. Das PHP-Handbuch hält fest, dass es seit PHP 8.4.0 veraltet ist, sich auf den Standardwert von escape zu verlassen: Der Parameter muss explizit übergeben werden, positionell oder als benannter Parameter. Ein Export, der bei jedem Cron-Lauf startet, würde sonst das Log mit Deprecation-Hinweisen füllen.
Dasselbe Handbuch erklärt, dass jeder escape-Wert außer dem leeren String CSV erzeugen kann, das nicht RFC 4180 entspricht oder einen Hin- und Rückweg durch die CSV-Funktionen von PHP nicht übersteht. Standard ist der Backslash, empfohlen wird "". Deshalb verwenden alle Aufrufe hier ',', '"', ''. Das Handbuch kündigt außerdem an, dass sich der Standardwert in einer künftigen Version ändert, frühestens mit PHP 9.0. Wer ihn heute festlegt, verhindert, dass sich die Ausgabe nach einem Server-Update von selbst ändert.
Große WordPress-Datenmengen ohne Speicherfehler exportieren
Das übliche Fehlerbild ist, zu viel auf einmal zu laden. PHP-Speicherlimits, max_execution_time und Timeouts des Reverse Proxys beenden lange Exporte im Admin. Verarbeiten Sie Daten mit WP_Query in Blöcken über posts_per_page und offset, oder besser mit einem stabilen Cursor, wenn offset bei großen Tabellen teuer wird.
// $fp ist der Stream, geöffnet wie im Benutzer-Beispiel.
$offset = 0;
$limit = 500;
do {
$query = new WP_Query(
array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => $limit,
'offset' => $offset,
'orderby' => 'ID',
'order' => 'ASC',
'fields' => 'ids',
'no_found_rows' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
)
);
foreach ( $query->posts as $post_id ) {
fputcsv( $fp, array( $post_id, get_the_title( $post_id ) ), ',', '"', '' );
}
$offset += $limit;
wp_cache_flush_runtime(); // WP 6.0+: leert nur den In-Memory-Cache dieses Requests
} while ( count( $query->posts ) === $limit );Warum das hilft:
fields => 'ids'hält die Objekt-Hydrierung schlank- Deaktivierte Meta- und Term-Caches verhindern, dass der Object Cache unbegrenzt wächst
- Feste Blockgrößen halten den Spitzenverbrauch nahe einer Seite von Zeilen
- Streaming mit
fputcsv()vermeidet, den kompletten CSV-String im RAM zu halten - Die Sortierung nach aufsteigender
IDverhindert, dass ein während des Exports veröffentlichter Beitrag die Seiten verschiebt und Zeilen doppelt oder gar nicht erscheinen
Nutzen Sie in der Schleife wp_cache_flush_runtime(), nicht wp_cache_flush(). Mit einem persistenten Object Cache (Redis oder Memcached) leert wp_cache_flush() mitten im Export den Cache der gesamten Website. Die Runtime-Funktion, verfügbar seit WordPress 6.0, leert nur den Speicher des aktuellen Requests und gibt false zurück, ohne den gemeinsamen Cache anzufassen, wenn das Drop-in sie nicht unterstützt.
Bei sehr großen Tabellen wird offset selbst langsam, weil MySQL die übersprungenen Zeilen trotzdem durchläuft. Bevorzugen Sie Keyset-Pagination: WHERE ID > last_id ORDER BY ID ASC LIMIT N. Für CLI-Jobs lohnt sich der zusätzliche Code.
Offizielle Referenz der Abfrageparameter: die Klasse WP_Query auf developer.wordpress.org.
Wie exportiert man WordPress-Beiträge mit WP-CLI nach CSV
Wenn Sie 500.000 Beiträge haben, läuft der Browser in einen Timeout. Nutzen Sie WP-CLI direkt auf dem Server. Das umgeht den Browser und die Timeout-Kette des Webservers und lässt sich per Cron automatisieren.
wp post list --post_type=product --fields=ID,post_title,post_status --format=csv > produkte.csvSinnvoll für:
- große Beitrags- oder Produktkataloge
- WooCommerce-Bestelldumps, die im wp-admin in einen Timeout laufen würden
- nächtliche Cron-Exporte in Object Storage oder ein gemeinsames Laufwerk
- Übergaben für Migration und Reporting
Befehlsdokumentation: wp post list. Der Befehl kennt --format=csv, json, yaml, ids, count oder table und nimmt jedes WP_Query-Argument als --<feld>=<wert> an. Ein Detail zählt auf großen Websites: --posts_per_page steht standardmäßig auf -1, also alle Beiträge in einer einzigen Abfrage. Bei sehr großen Tabellen paginieren Sie mit --posts_per_page=1000 --paged=N in einer Shell-Schleife.
Für Benutzer gibt es das Gegenstück wp user list mit den Standardfeldern ID, user_login, display_name, user_email, user_registered und roles:
wp user list --role=customer --fields=ID,user_email,user_registered --format=csv > kunden.csvJeder Befehl akzeptiert den globalen Parameter --ssh=benutzer@host/pfad, der den Export von Ihrem Rechner aus gegen einen entfernten Server ausführt, ohne separate Sitzung.
Reichen die Standard-Flags nicht, schreiben Sie einen eigenen WP-CLI-Befehl, der eine Datei öffnet, mit WC_Order_Query oder WP_Query paginiert und CSV auf die Festplatte schreibt. Das hält den Speicher berechenbar und erlaubt, nach einer Unterbrechung an einem Checkpoint fortzusetzen:
// Befehl: wp wppoland export-orders
WP_CLI::add_command( 'wppoland export-orders', function ( $args, $assoc_args ) {
$file = fopen( 'bestellungen.csv', 'w' );
fputcsv( $file, array( 'Bestell-ID', 'Erstellt', 'Status', 'Summe', 'Kunde' ), ',', '"', '' );
$page = 1;
do {
$orders = wc_get_orders(
array(
'type' => 'shop_order',
'limit' => 200,
'paged' => $page,
'orderby' => 'ID',
'order' => 'ASC',
)
);
foreach ( $orders as $order ) {
$created = $order->get_date_created();
fputcsv(
$file,
array(
$order->get_id(),
$created ? $created->date( 'c' ) : '',
$order->get_status(),
$order->get_total(),
$order->get_billing_email(),
),
',',
'"',
''
);
}
$page++;
} while ( count( $orders ) === 200 );
fclose( $file );
WP_CLI::success( 'Export nach bestellungen.csv abgeschlossen' );
} );limit und paged sind dokumentierte Parameter von wc_get_orders(). Mit limit => -1 würde der Befehl alle Bestellungen in den Speicher laden, bevor die erste Zeile geschrieben ist, also genau das, was die Blockverarbeitung vermeiden soll.
Die komplette Datenbank mit wp db export sichern
Manchmal ist nicht eine Tabelle gefragt, sondern eine Kopie von allem. wp db export führt mysqldump mit den Zugangsdaten aus der wp-config.php aus und schreibt eine SQL-Datei. Mit --tables wählen Sie einzelne Tabellen, mit --exclude_tables schließen Sie welche aus, und mit - als Dateiname geht der Dump auf die Standardausgabe:
wp db export - --tables=wp_posts,wp_postmeta | gzip > inhalte.sql.gzPassen Sie das Tabellenpräfix an Ihre Installation an. Ein SQL-Dump dient zum Wiederherstellen oder zum Laden in eine andere Datenbank, nicht zum Öffnen in Excel. Er enthält außerdem die Benutzertabelle mit Passwort-Hashes und oft API-Schlüssel, die Plugins in wp_options ablegen. Behandeln Sie ihn wie ein Geheimnis: nie in einem öffentlichen Ordner, nie als E-Mail-Anhang.
Wie exportiert man WordPress-Daten über die REST API
Wenn Sie ein React-Dashboard oder eine Headless-App bauen, konsumieren Sie JSON, nicht CSV. Ist der Abnehmer Software und kein Mensch mit Excel, ist die REST API oft sauberer, als CSV in WordPress zu erzeugen.
Typische Fälle:
- Inhalte in ein Data Warehouse oder BI-Werkzeug synchronisieren
- ein CRM mit Benutzern oder Leads versorgen
- Headless-Frontends, die strukturierte Beitragsdaten brauchen
Referenz der Beitragssammlung: Posts-Endpunkt.
Die WordPress REST API (/wp-json/wp/v2/posts) paginiert Daten standardmäßig. Laut Pagination-Leitfaden ist per_page auf 100 Datensätze begrenzt, und jede Antwort liefert die Header X-WP-Total (Gesamtzahl der Datensätze) und X-WP-TotalPages (Gesamtzahl der Seiten). Um alle Daten abzurufen, schreiben Sie eine Schleife oder rekursive JS-Funktion, die dem Header X-WP-TotalPages folgt, statt zu raten, wann Schluss ist. Authentifizieren Sie sich mit Application Passwords oder den OAuth-Abläufen, die Ihr Hosting unterstützt, und respektieren Sie Rate Limits. Das CSV entsteht danach beim Abnehmer, falls noch eine Tabelle nötig ist. So bleibt WordPress für den autorisierten Datenzugriff zuständig und die Dateiformatierung beim Konsumenten.
Stellen Sie privilegierte Export-Routen nie ohne Authentifizierung bereit. Behandeln Sie Export-Endpunkte wie jede andere schreibnahe Admin-Oberfläche, auch wenn sie nur lesen.
WooCommerce-Produkte ohne Plugin nach CSV exportieren
Für den Katalog brauchen Sie keinen Code. Laut der Dokumentation zum Produkt-CSV-Importer und -Exporter bringt WooCommerce ein eigenes Werkzeug mit, um Produkte zu importieren, zu exportieren und in großen Mengen zu aktualisieren:
- Öffnen Sie Produkte > Alle Produkte und klicken Sie oben auf Exportieren.
- Wählen Sie die Spalten oder behalten Sie die Option, alle zu exportieren.
- Filtern Sie nach Produkttypen und Kategorien oder lassen Sie beides auf alle.
- Aktivieren Sie die Option für alle benutzerdefinierten Metadaten, wenn Sie Daten von WooCommerce oder anderen Plugins brauchen. Diese Spalten tragen das Präfix
meta:. - Klicken Sie auf CSV generieren und warten Sie, bis der Browser die Datei herunterlädt.
Die Datei hat dasselbe Format, das der Importer liest, und eignet sich daher als Grundlage für Massenänderungen an Preisen oder Lagerbestand: exportieren, in der Tabelle bearbeiten, wieder importieren. Das Werkzeug deckt den Produktkatalog ab. Bestellungen sind nicht enthalten, um die geht es im nächsten Abschnitt.
Wie exportiert man WooCommerce-Bestellungen nach CSV
Bestellexporte wirken einfach, bis Positionen, Erstattungen und HPOS das Bild verändern.
Positionen sind nicht eine Zeile. Eine Bestellung kann mehrere Produkte, Gebühren, Versandpositionen und Steuern haben. Legen Sie vorab fest, ob eine CSV-Zeile eine Bestellung oder eine Position bedeutet. Beides ohne klares Schema zu mischen, ergibt unbrauchbare Tabellen.
Meta und eigene Felder sprengen die Breite. IDs von Zahlungs-Gateways, Sendungsnummern und Plugin-Meta erzeugen breite, dünn besetzte Spalten. Exportieren Sie nur die Felder, die der Bericht braucht. Legen Sie eine zweite Datei für Positionen an, wenn Sie beide Formen behalten müssen.
Speicher-Backends unterscheiden sich. Klassische shop_order-Beiträge und Tabellen des High-Performance Order Storage (HPOS) werden nicht gleich abgefragt. HPOS ist seit WooCommerce 8.2 der Standardspeicher, laut der Dokumentation von wc_get_orders(). Nutzen Sie das CRUD von WooCommerce (wc_get_orders() / WC_Order_Query) statt rohem WP_Query auf shop_order, damit Ihr Exporter einen Speicherwechsel übersteht. Für Datumsfilter akzeptiert date_created einen Bereich der Form 2026-01-01...2026-03-31, ausgewertet in der Zeitzone der Website.
Statusfilter zählen. Entwürfe, fehlgeschlagene Zahlungen, erstattete Bestellungen und Papierkorb blähen Umsatzberichte auf oder verzerren sie. Dokumentieren Sie, welche Status Sie einschließen.
Personenbezogene Daten und Zugriff. Bestellungen enthalten Namen, E-Mails und Adressen. Berechtigungsprüfungen (manage_woocommerce oder eine eigene Capability), Nonces und Audit-Logs gehören in jeden Admin-Exporter. Nutzen Sie WP-CLI für Massendumps, damit die Datei nie in einem öffentlich erreichbaren Uploads-Pfad liegt.
Performance. Alle Meta-Schlüssel einer Bestellung in einem SQL-Statement zu joinen, wirkt schnell, bis die Tabelle wächst. Paginieren Sie Bestellungen, laden Sie jede mit wc_get_order(), schreiben Sie die Zeile und verwerfen Sie das Objekt. Das ist pro Bestellung langsamer als ein riesiger JOIN und unter Speicherlimits deutlich stabiler.
Währung und Format. Speichern Sie Summen als einfache Zahlen. Lassen Sie Excel die Währung formatieren. Locale-spezifische Tausendertrennzeichen in CSV-Feldern brechen Importe in andere Werkzeuge.
Datumsfelder. Speichern Sie ISO-8601 oder Unix-Zeitstempel im CSV und formatieren Sie erst in der Tabelle. Gemischte lokale Datumsangaben (03.04.2026 gegen 04/03/2026) verursachen stille Sortierfehler, sobald die Datei Ländergrenzen überquert.
Erstattungen und Teilerstattungen. Entscheiden Sie, ob erstattete Beträge als negative Zeilen, separate Erstattungs-IDs oder verrechnete Bestellsummen erscheinen. Dokumentieren Sie die Wahl in einer README neben dem Export-Cron, damit Buchhaltung und Entwicklung mit derselben Tabelle arbeiten.
Formel-Injection in einer exportierten CSV verhindern
Eine CSV aus WordPress enthält Daten, die Ihre Benutzer eingegeben haben: Anzeigenamen, Kommentare, Formularfelder, Rechnungsadressen. OWASP beschreibt das Risiko als CSV Injection oder Formula Injection: Es entsteht, wenn eine Website nicht vertrauenswürdige Eingaben in eine CSV-Datei einbettet. Beginnt eine Zelle mit =, +, - oder @, mit einem Tabulator, einem Wagenrücklauf oder einem Zeilenvorschub, kann die Tabellenkalkulation sie beim Öffnen als Formel auswerten.
Die Gegenmaßnahme von OWASP: Keine Zelle darf mit diesen Zeichen beginnen, zum Beispiel indem Sie ein einfaches Anführungszeichen voranstellen, sodass das Programm die Zelle als Text liest:
function wppoland_csv_safe( $value ) {
$value = (string) $value;
if ( '' !== $value && in_array( $value[0], array( '=', '+', '-', '@', "\t", "\r", "\n" ), true ) ) {
return "'" . $value;
}
return $value;
}Wenden Sie die Funktion auf Freitextspalten an, nicht auf Beträge, die WooCommerce berechnet: Eine negative Erstattungssumme beginnt mit - und würde zu Text, was die Summen in der Tabelle bricht.
Personenbezogene Daten eines Benutzers mit dem DSGVO-Werkzeug exportieren
Kommt die Anfrage von einer Person, die ihre Rechte ausübt, brauchen Sie keinen eigenen Exporter. Die Dokumentation für Plugin-Entwickler erklärt, dass WordPress 4.9.6 ein Werkzeug zum Export personenbezogener Daten eingeführt hat (Werkzeuge > Personenbezogene Daten exportieren), gedacht für Gesetze wie die DSGVO.
Schlüssel jedes Exports ist die E-Mail-Adresse. Das deckt registrierte Benutzer ab und auch Personen, die nur einen Kommentar hinterlassen haben. Der Administrator gibt Benutzername oder E-Mail ein, WordPress verschickt einen Bestätigungslink, und nach der Bestätigung lädt der Administrator das ZIP herunter oder sendet es direkt an die Person. Darin liegt eine HTML-Indexseite mit den Daten in Gruppen, etwa den Kommentaren. Plugins mit eigenen personenbezogenen Daten hängen sich über den Filter wp_privacy_personal_data_exporters ein, damit ihre Daten in derselben Datei landen.
Welche Exportmethode für welche Datenmenge
- Kleine Daten (< 1.000 Zeilen): PHP-Streaming an den Browser.
- Große Daten (> 10.000 Zeilen): WP-CLI über
ssh. - App-Daten: JSON über die REST API.
- Ganze Website umziehen: WXR über Werkzeuge > Exportieren oder
wp export. - Komplettsicherung:
wp db export.
Checkliste für den WordPress-Datenexport
- Bevorzugen Sie in WordPress CSV gegenüber XLSX, und WXR nur zum Umziehen von Inhalten.
- Streamen Sie mit
fputcsv(), explizitemescapeund Berechtigungsprüfung für kleine Admin-Downloads. - Verarbeiten Sie in Blöcken mit
WP_Queryoder WooCommerce-Abfragen; deaktivieren Sie unnötige Caches. - Verlagern Sie große oder geplante Jobs auf WP-CLI.
- Nutzen Sie die REST API, wenn ein anderes System strukturierte Daten abholt.
- Legen Sie bei WooCommerce die Zeilenbedeutung fest (Bestellung oder Position) und nutzen Sie CRUD-APIs, damit HPOS den Exporter nicht bricht.
- Entschärfen Sie Zellen, die in Freitextspalten mit
=,+,-oder@beginnen.
Ihre Daten gehören Ihnen. Stellen Sie sicher, dass Sie sie immer herausbekommen.
WP-CLI für große Exporte, REST API für Anwendungen: Der Weg hängt am Datenvolumen, nicht am Plugin-Angebot. Wenn Exporte bei Ihnen regelmäßig anfallen, automatisieren wir sie in der technischen WordPress-Betreuung.







