• Gelöst masterriemi1702

    (@masterriemi1702)


    Hallo zusammen.

    ich habe die Beiträge auf Grund der Linkstruktur aus einer alten Seite exportiert und wieder in eine neue Seite importiert.

    Nun muss ich alle Texte dieser Beiträge neu machen und möchte natürlich nicht 500 mal einen Beitrag auf machen, den Inhaltz löschen und weiter zum nächsten gehen.

    Gibtb es beispielsweise über einen SQL Befehl in PHPMyAdmin alle Inhalte der 500 Beiträge (nicht Seiten) zu löschen?

    Liebe Grüße

Ansicht von 9 Antworten – 1 bis 9 (von insgesamt 9)
  • 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/)

    Thread-Starter masterriemi1702

    (@masterriemi1702)

    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.

    Thread-Starter masterriemi1702

    (@masterriemi1702)

    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 … 

    Thread-Starter masterriemi1702

    (@masterriemi1702)

    Das versuche ich später mal. Ich Danke dir.

    Thread-Starter masterriemi1702

    (@masterriemi1702)

    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“:

    Screenshot Snippet

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

    Thread-Starter masterriemi1702

    (@masterriemi1702)

    Das hat super funktioniert. Vielen lieben Dank!

Ansicht von 9 Antworten – 1 bis 9 (von insgesamt 9)
  • Das Thema „Inhalt aller beiträge auf einmal löschen“ ist für neue Antworten geschlossen.