---
title: "Einzelne Beiträge und Medien aus einem WordPress-Backup zurückholen"
date: 2026-09-30T21:12:06+02:00
modified: 2026-11-09T20:21:02+01:00
category: wordpress
type: how_to
author: Marcel Schönfelder
canonical: https://s-edv.com/anleitungen/wordpress-einzelne-beitraege-medien-aus-backup-wiederherstellen
keywords:
  - WordPress
  - Backup
  - Wiederherstellung
  - WP-CLI
  - Mediathek
reading_time: 9
---

# Einzelne Beiträge und Medien aus einem WordPress-Backup zurückholen

Ein versehentlich gelöschter Beitrag, eine überschriebene Seite oder ein fehlendes Bild sind kein Grund, die gesamte Website auf den Stand von gestern zurückzusetzen. Ein vollständiges Restore würde alle Bestellungen, Kommentare und Formulareingänge seit dem Backup verwerfen. Diese Anleitung zeigt den gezielten Weg: Zuerst prüfen Sie die Bordmittel von WordPress, dann holen Sie einzelne Inhalte aus einem Backup, indem Sie es auf einer Testinstanz öffnen, die betroffenen Inhalte exportieren und nur diese in die Live-Website übernehmen. Alle Schritte wurden mit WordPress 7.1.2 und WP-CLI 2.12.0 durchgespielt.

**Kurzfassung:** Schauen Sie zuerst in den Papierkorb unter „Beiträge“ bzw. „Seiten“ und in die Revisionen des Editors, dort liegen viele Inhalte noch. Hilft das nicht, spielen Sie das Backup auf einer Testinstanz ein, nie auf der Live-Seite. Dort exportieren Sie den Beitrag mit `wp export --post__in=ID` und importieren ihn auf der Live-Seite mit dem Plugin „WordPress Importer“ und der Option `--skip=attachment`. Bilder kopieren Sie aus dem Datei-Backup zurück und registrieren sie mit `wp media import --skip-copy` wieder in der Mediathek.

## Voraussetzungen

- [ ] **WordPress:** aktuelle Version, getestet mit WordPress 7.1.2 und PHP 8.4. Im beschriebenen Beispiel läuft das Update auf WordPress 7.1.3 ohne Fehler und ohne Datenbank-Update. Die Prüfsummen stimmen. Papierkorb, `wp export` mit `--post__in` und der Import über den WordPress Importer arbeiten danach wie beschrieben.
- [ ] **Rolle:** Administrator im WordPress-Backend der Live-Website.
- [ ] **Backup:** ein Datenbank-Export (`.sql`) und ein Archiv von `wp-content/uploads` aus der Zeit, als der Inhalt noch vorhanden war.
- [ ] **Testinstanz:** eine zweite WordPress-Installation, lokal oder beim Hoster, in die Sie das Backup einspielen können. Sie darf die Live-Datenbank nicht mitbenutzen.
- [ ] **Zugriff:** SSH mit WP-CLI auf Test- und Live-Instanz. Ohne SSH gehen Export und Import auch im Backend, Details stehen im jeweiligen Schritt.
- [ ] **Aktuelle Sicherung der Live-Seite** vor dem Import, damit Sie einen fehlerhaften Import zurücknehmen können.

## Schritt 1: Papierkorb und Revisionen prüfen

Gelöschte Beiträge und Seiten landen in WordPress zunächst im Papierkorb. Unter „Beiträge > Alle Beiträge“ oder „Seiten“ finden Sie oben den Filter „Papierkorb“. Fahren Sie mit der Maus über den Eintrag und wählen Sie „Wiederherstellen“. WordPress leert den Papierkorb standardmäßig nach 30 Tagen, festgelegt durch die Konstante `EMPTY_TRASH_DAYS`. Bis dahin ist keine Sicherung nötig.

Beachten Sie: Ein wiederhergestellter Beitrag kommt als Entwurf zurück, nicht veröffentlicht. Im Labor lieferte `wp_untrash_post()` für einen zuvor veröffentlichten Beitrag den Status `draft`. Veröffentlichen Sie ihn danach bewusst erneut. Per WP-CLI sieht das so aus:

```bash
$ wp post list --post_status=trash --fields=ID,post_title
$ wp post update 8 --post_status=publish
```

Wurde ein Text überschrieben, statt gelöscht, helfen die Revisionen. Öffnen Sie den Beitrag im Editor, in der rechten Seitenleiste unter „Beitrag“ steht die Zahl der Revisionen. Dort vergleichen Sie Stände und klicken auf „Diese Revision wiederherstellen“. Revisionen gibt es nur, solange der Beitrag existiert: Mit dem endgültigen Löschen eines Beitrags verschwinden auch seine Revisionen, das zeigte sich im Labor, als nach dem Löschen keine Revision mehr zum Beitrag gelistet war.

> **Prüfen:** Der Beitrag ist wieder unter „Alle Beiträge“ sichtbar und hat den gewünschten Status. Falls nicht, weiter mit Schritt 2.

## Schritt 2: Backup auf einer Testinstanz öffnen

Spielen Sie das Backup nie testweise auf der Live-Seite ein. Der Import eines Datenbank-Exports ersetzt alle Tabellen und damit alles, was seit dem Backup passiert ist. Nutzen Sie eine eigene Testinstanz. Wie Sie eine einrichten, beschreibt die Anleitung [Staging-Umgebung für WordPress einrichten](https://s-edv.com/anleitungen/wordpress-staging-umgebung-wp-cli-einrichten).

Prüfen Sie vor jedem Import, auf welcher Instanz WP-CLI gerade arbeitet. Der Befehl nutzt die `wp-config.php` des aktuellen Verzeichnisses:

Datei: `wp-config.php`

```bash
wp option get siteurl
wp db import /pfad/zum/backup.sql
```

Die erste Zeile muss die Adresse der Testinstanz zeigen. Danach entpacken Sie das Uploads-Archiv in das `wp-content`-Verzeichnis der Testinstanz. Läuft die Testinstanz unter anderer Adresse als die Live-Seite, passen Sie die URLs mit `wp search-replace` an, nicht per SQL, da WordPress viele Einstellungen serialisiert speichert.

Wichtig für den DACH-Raum: Die Testinstanz enthält nun eine vollständige Kopie mit Kunden- und Benutzerdaten. Schützen Sie sie vor öffentlichem Zugriff und löschen Sie sie, sobald Sie die Inhalte übernommen haben.

> **Prüfen:** Die Testinstanz zeigt den gesuchten Beitrag im gewünschten Zustand, und `wp option get siteurl` gibt nicht die Live-Adresse aus.

## Schritt 3: Gesuchte Inhalte exportieren

WordPress exportiert Inhalte im WXR-Format, einer XML-Datei mit Beiträgen, Seiten, Kategorien, Schlagwörtern, Autoren und Metadaten. Suchen Sie auf der Testinstanz zuerst die ID des Beitrags und exportieren Sie ihn dann gezielt. `--with_attachments` nimmt die zugehörigen Mediathek-Einträge mit:

```bash
$ wp post list --post_type=post,page --fields=ID,post_title,post_date
$ wp export --post__in=8 --with_attachments --dir=/pfad/export --filename_format=wiederherstellung.xml
```

Im Labor meldete der Befehl „Success: All done with export.“ und die Datei enthielt zwei Einträge: den Beitrag und das zugehörige Bild. Mehrere Beiträge geben Sie mit Komma getrennt an. Mit `--post_type`, `--start_date` und `--end_date` lässt sich der Export auch nach Typ und Zeitraum eingrenzen, etwa für alle Seiten einer Woche.

Ohne SSH nutzen Sie im Backend der Testinstanz „Werkzeuge > Export“. Dort können Sie nur nach Inhaltstyp, Kategorie, Autor, Zeitraum und Status filtern, nicht nach einzelnen IDs. Exportieren Sie in dem Fall einen möglichst engen Zeitraum.

> **Prüfen:** Die XML-Datei existiert, und ein Blick hinein zeigt den Titel des gesuchten Beitrags sowie bei Bildern eine Zeile `<wp:attachment_url>`.

## Schritt 4: Bilder und Dateien zurückkopieren

Der Importer kann Bilder nur übernehmen, wenn er sie von der ursprünglichen Adresse herunterladen kann. Ist die Datei auf der Live-Seite gelöscht oder die Testinstanz nicht aus dem Internet erreichbar, schlägt das fehl. Im Labor lautete die Meldung „Failed to import Medien “Büro”“, der Beitrag wurde trotzdem importiert, aber ohne Bild. Zuverlässiger ist deshalb, die Bilddateien direkt aus dem Backup-Archiv zu holen.

Die Pfade stehen in der XML-Datei in der Zeile `<wp:attachment_url>`. Entpacken Sie auf der Live-Seite im WordPress-Verzeichnis nur diese Datei aus dem Archiv:

```bash
$ tar -tzf uploads-backup.tar.gz | grep buero
$ tar -xzf uploads-backup.tar.gz wp-content/uploads/2026/09/buero.jpg
```

Der erste Befehl listet die passenden Pfade im Archiv, der zweite stellt genau eine Datei wieder her, ohne andere Uploads zu überschreiben. Die verkleinerten Varianten wie `buero-300x225.jpg` brauchen Sie nicht, WordPress erzeugt sie im nächsten Schritt neu. Achten Sie darauf, dass die Datei dem Benutzer des Webservers gehört, sonst kann WordPress sie später nicht bearbeiten.

> **Prüfen:** Die Bilddatei liegt wieder unter demselben Pfad in `wp-content/uploads`.

## Schritt 5: Inhalte in die Live-Website übernehmen

Sichern Sie jetzt die Live-Datenbank. Der Import fügt Inhalte hinzu, ändert aber nichts Bestehendes. Die Sicherung erlaubt Ihnen dennoch, einen verunglückten Import vollständig zurückzunehmen.

```bash
$ wp db export vor-import.sql
```

Für den Import brauchen Sie das Plugin [WordPress Importer](https://wordpress.org/plugins/wordpress-importer/) (im Labor Version 0.9.6). Im Backend installieren Sie es über „Werkzeuge > Import“, per WP-CLI so:

```bash
$ wp plugin install wordpress-importer --activate
$ wp import wiederherstellung.xml --authors=skip --skip=attachment
```

`--authors=skip` ordnet keine Autoren aus der Datei zu und legt keine neuen Benutzer an. Mit `--authors=create` würde der Importer fehlende Benutzer neu anlegen, was auf einer Unternehmensseite selten gewollt ist. `--skip=attachment` überspringt die Mediathek-Einträge, weil Sie die Dateien in Schritt 4 selbst zurückgeholt haben. Existiert ein Beitrag mit gleichem Titel und Datum bereits, überspringt der Importer ihn; im Labor blieb dadurch bei einem zweiten Import der vorhandene Beitrag unverändert, es entstand kein Duplikat.

Registrieren Sie das zurückkopierte Bild anschließend in der Mediathek und hängen Sie es wieder an den Beitrag. `--skip-copy` nutzt die Datei an ihrem Ort, statt eine Kopie anzulegen, `--featured_image` setzt sie als Beitragsbild:

```bash
$ wp media import wp-content/uploads/2026/09/buero.jpg --skip-copy --post_id=8 --featured_image --title="Büro"
```

Im Labor entstand so ein neuer Mediathek-Eintrag mit neuer ID, die Vorschaubilder wurden neu erzeugt und das Beitragsbild war gesetzt. Weil die ID sich ändert, prüfen Sie Bildblöcke im Beitrag: Die Adresse der Datei stimmt wieder, der Block verweist aber auf die alte ID. Öffnen Sie den Beitrag im Editor und wählen Sie das Bild bei Bedarf neu aus der Mediathek aus.

Solche Rettungsaktionen sind nur möglich, wenn regelmäßig passende Backups entstehen und jemand sie im Blick behält. Wer diese Aufgabe nicht selbst im Kalender halten möchte, kann sie abgeben: Die [WordPress-Wartung von wordpressupdate.de](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=artikel&utm_campaign=23) übernimmt wöchentliche Backups auf externen Speicher mit vier Wochen Aufbewahrung sowie Updates von WordPress, Plugins und Themes.

> **Prüfen:** Der Beitrag erscheint unter „Beiträge > Alle Beiträge“, zeigt Text und Bild im Frontend, und die Mediathek enthält das Bild mit Vorschau.

## Schritt 6: Nacharbeiten und aufräumen

Prüfen Sie nach dem Import Status, Kategorie, Autor, Permalink und Beitragsbild. Importierte Beiträge behalten ihren ursprünglichen Status aus der Datei. Stimmt der Permalink nicht mehr, weil zwischenzeitlich ein anderer Beitrag denselben Slug belegt hat, korrigieren Sie ihn, damit externe Links wieder funktionieren.

Deaktivieren Sie den WordPress Importer, wenn Sie ihn nicht mehr brauchen. Löschen Sie die Export-Datei und die Testinstanz samt Datenbank. Beide enthalten Inhalte und bei vollständigem Backup auch personenbezogene Daten.

```bash
$ wp plugin deactivate wordpress-importer
$ wp plugin delete wordpress-importer
```

> **Prüfen:** Der Beitrag ist öffentlich unter seiner alten Adresse erreichbar, der Importer ist entfernt, und von der Testinstanz existiert keine erreichbare Kopie mehr.

## Typische Fehler

**„Failed to import Medien …“**

Der Importer konnte die Bilddatei nicht herunterladen. Im Labor trat das auf, weil die Quelladresse nicht erreichbar war. Holen Sie die Datei wie in Schritt 4 aus dem Archiv.

**Beitrag nach Wiederherstellung aus dem Papierkorb nicht sichtbar**

Er ist als Entwurf zurückgekommen. Filtern Sie in „Alle Beiträge“ nach Entwürfen und veröffentlichen Sie ihn.

**Backup versehentlich auf der Live-Seite eingespielt**

Alle Änderungen seit dem Backup sind überschrieben. Spielen Sie sofort die in Schritt 5 angelegte Sicherung `vor-import.sql` ein, falls vorhanden. Deshalb immer erst `wp option get siteurl` prüfen.

**„Permission denied“ beim Export**

Im Labor scheiterte `wp db export` mit „Can't create/write to file … (Errcode: 13 "Permission denied")“, weil das Zielverzeichnis einem anderen Benutzer gehörte. Wählen Sie ein Verzeichnis, in das der ausführende Benutzer schreiben darf.

**Bild im Beitrag fehlt trotz Mediathek-Eintrag**

Der Bildblock verweist auf die alte Anhang-ID. Bild im Editor neu auswählen.

## Häufige Fragen

### Kann ich einzelne Tabellen aus dem SQL-Backup direkt einspielen?

Technisch ja, praktisch riskant. Ein Beitrag verteilt sich auf mehrere Tabellen (Beitrag, Metadaten, Begriffe, Zuordnungen), und IDs können sich mit neuen Inhalten überschneiden. Der Weg über Testinstanz und WXR-Export ist langsamer, aber kontrollierbar.

### Funktioniert das auch mit Seiten und Produkten?

`wp export` exportiert alle Inhaltstypen, auch eigene wie Produkte. Ob alle Zusatzdaten eines Shop-Plugins im Export stecken, hängt vom Plugin ab. Prüfen Sie das Ergebnis auf der Testinstanz, bevor Sie live importieren.

### Was ist mit Kommentaren?

Kommentare zu exportierten Beiträgen sind in der WXR-Datei enthalten und werden mit importiert, solange Sie nicht `--skip_comments` beim Export setzen.

### Wie lange nach dem Löschen geht das noch?

So lange, wie ein Backup mit dem Inhalt existiert. Die Aufbewahrungsdauer legen Sie in Ihrer Backup-Strategie fest, siehe [WordPress-Backup-Strategie planen](https://s-edv.com/anleitungen/wordpress-backup-strategie-dateien-datenbank-aufbewahrung).

## Fazit

Einzelne Inhalte holen Sie am sichersten in drei Stufen zurück: Papierkorb und Revisionen, dann Testinstanz mit gezieltem Export, zuletzt Import auf der Live-Seite mit getrennt zurückkopierten Bildern. So bleibt alles erhalten, was seit dem Backup hinzugekommen ist. Voraussetzung sind regelmäßige, geprüfte Sicherungen; wer diese Pflege auslagern möchte, findet sie bei der [WordPress-Wartung von Marcel Schönfelder](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=fazit&utm_campaign=23).

## Weiterführende Anleitungen und Quellen

- [WordPress-Backup-Strategie: Dateien, Datenbank und Aufbewahrung richtig planen](https://s-edv.com/anleitungen/wordpress-backup-strategie-dateien-datenbank-aufbewahrung)
- [Staging-Umgebung für WordPress einrichten](https://s-edv.com/anleitungen/wordpress-staging-umgebung-wp-cli-einrichten)
- [WordPress-Update fehlgeschlagen: weiße Seite und kritischen Fehler beheben](https://s-edv.com/anleitungen/wordpress-update-fehler-beheben-weisse-seite-kritischer-fehler)
- [WP-CLI: wp export](https://developer.wordpress.org/cli/commands/export/)
- [WP-CLI: wp import](https://developer.wordpress.org/cli/commands/import/)
- [WP-CLI: wp media import](https://developer.wordpress.org/cli/commands/media/import/)
- [WordPress Importer auf wordpress.org](https://wordpress.org/plugins/wordpress-importer/)
