So ganz kann ich deiner Schilderung nicht folgen: Du importierst 500 Beiträge, um sie anschließend wieder zu löschen?
Kennst du das Kommandozeilen-Tool WP-CLI? Damit kannst du im Terminal mit Unix-Befehlen deine WordPress-Website installieren und administrieren. Dazu gehört auch, dass du den Inhalt von Beiträgen löschen kannst (vgl. https://developer.wordpress.org/cli/commands/post/update/)
Danke für den Tipp! ich brauchte nur die Linkstruktur, weil ich nicht für jede Stadt wieder einen neuen Beitrag anlegen wollte. Der Inhalt dieser Beiträge muss aber neu gemacht werden und deswegen die Frage für die Löschung 🙂
Dann hätte ich die Beiträge wahrscheinlich auch mit WP-CLI angelegt.
Du hast ja wie ich sehe schon mehr Erfahrung mit dem Tool. Würdest du mir dann bei dem Befehls syntax helfen um die Beiträge mit diesem Tool zu löschen?
LG
Naja, Syntax … Ich tippe eigentlich immer nur wp
und die Tab-Taste und bekomme angezeigt, welche Befehle und Parameter mir zur Auswahl gegeben werden. Ansonsten schau ich in die Dokumentation. Vorher Backup der Datenbank machen (geht auch mit WP-CLI: wp db export
).
Mit wp post list --field=ID
kannst du die IDs aller Beiträge ausgeben, was du auch in eine Datei umleiten kannst: wp post list --field=ID > posts.txt
.
Mit wp post update 42 --post_content=""
kannst du einem Beitrag mit der ID 42 einen leeren Inhalt zuweisen.
Das ganze kannst du dann noch verbinden:
wp post update $(wp post list --format=ids) --post_content=""
Dann noch ein Tässchen Tee …
Das versuche ich später mal. Ich Danke dir.
Hallo zusammen.
ich hatte diese Frage schon einmal in einer ähnlichen Variante erstellt, aber hatte mit den Lösungen noch keinen richtigen Erfolg. Zu meiner Aufgabe:
Ich habe eine Seite A wo ich zig Städte in den Beiträgen angelegt habe. Diese Struktur habe ich von dieser Seite nun mit dem Inhalt der Beiträge auf Seite B übertragen.
Nun müsste ich, damit es kein Problem mit doppeltem Inhalt gibt, den Inhalt der Beiträge auf Seite B löschen um dort neue Texte einzustellen.
Nun habe ich natürlich keine Lust jeden Beitrag auf zu machen, den Inhalt zu löschen und weiter zum nächsten zu gehen.
Kennt jemand ein Plugin oder eine andere Lösung um das beispielsweise per SQL befehl direkt in der DB zu erledigen?
Die Variante von @pixolin funktioniert leide rbei mir incht, da ich keinen Zugang zu einem Terminal habe 🙂
LG
Liebe Grüße
Die Variante von @pixolin funktioniert leide rbei mir incht, da ich keinen Zugang zu einem Terminal habe 🙂
In dem Fall kannst du deine Website lokal klonen, dort die WP-CLI-Befehle ausführen und dann die Datenbank exportieren/auf deinem Webserver importieren.
Alternativ kannst du aber auch ein kleines Code-Snippet verwenden.
Dazu machst du zuerst ein Backup der Datenbank (wichtig!),
dann installierst du das Plugin Code Snippets,
unter Snippets erstellst du ein neues Snippet mit folgendem Inhalt:
/*
* Achtung: diese Funktion löscht alle Inhalte
* und Textauszüge deiner Beiträge!
* Vorher Backup erstellen. Benutzung auf eigene Gefahr.
*/
add_action('init', 'delete_my_post_content');
function delete_my_post_content() {
$myposts = get_posts(array(
'fields' => 'ids', // Only get post IDs
'posts_per_page' => -1,
'post_type' => 'post',
));
foreach( $myposts as $mypost ) {
$args = array(
'ID' => $mypost,
'post_content' => '',
'post_excerpt' => '',
);
wp_update_post( $args ); // update posts
delete_post_meta( $mypost, '_thumbnail_id'); // remove featured image
}
}
Unterhalb des Code-Fensters kannst du angeben, wo und wie oft der Code ausgeführt werden soll. Hier setzt du die Einstellungen auf „nur einmal ausführen“:

Wenn du vorher ein Backup der Datenbank gemacht hast und dir sicher bist, dass du den Code richtig kopiert und eingefügt hast, führst du ihn per Button ganz unten einmal aus. Danach sollten Inhalt, Textauszüge und Beitragsbilder deiner Beiträge entfernt sein, während der Titel bestehen bleibt. Nach der Aktion kannst du das Plugin Code Snippets wieder deaktivieren und löschen. Sollte irgendwas schief gehen, kannst du das Backup der Datenbank wiederherstellen.
Verwendung auf eigenes Risiko. 🙂
Das hat super funktioniert. Vielen lieben Dank!