Wenn du viele Kommentare löschen willst, kann das ĂŒber das WordPress-Backend eine langwierige Aufgabe sein. Mit Hilfe der WP-CLI geht es wesentlich schneller.

Voraussetzungen

Da ich in meinem Fall alle Kommentare entfernen und auch die Kommentare fĂŒr alle EintrĂ€ge deaktivieren möchte, muss ich mich nicht mit irgendeiner Form der Begrenzung der Befehle befassen. WordPress erlaubt es dir nur, den Kommentarstatus fĂŒr neue BeitrĂ€ge zu bearbeiten – das bedeutet, dass du die Kommentare nicht fĂŒr alle deine BeitrĂ€ge global deaktivieren kannst, sondern nur fĂŒr neue BeitrĂ€ge. Du musst demnach alle BeitrĂ€ge aktualisieren, um fĂŒr sie die Kommentare zu deaktivieren

Du benötigst dafĂŒr somit drei Befehle:

  • Kommentare fĂŒr neue BeitrĂ€ge deaktivieren
  • Kommentare fĂŒr alle existierenden BeitrĂ€ge deaktivieren
  • Alle existierenden Kommentare löschen

Kommentare fĂŒr neue BeitrĂ€ge deaktivieren

Das Deaktivieren von Kommentaren fĂŒr neue BeitrĂ€ge kann auch im WordPress-Backend mit verhĂ€ltnismĂ€ĂŸigem Aufwand erreicht werden. Gehe zu Einstellungen > Diskussion > Standardeinstellungen fĂŒr BeitrĂ€ge und deaktiviere die Option „Besuchern erlauben, neue BeitrĂ€ge zu kommentieren“.

Da wir das jedoch via WP-CLI erreichen wollen, kannst du dafĂŒr folgenden Befehl ausfĂŒhren:

wp option set default_comment_status ""Code-Sprache: Bash (bash)

Kommentare fĂŒr alle existierenden BeitrĂ€ge deaktivieren

Da es existierende BeitrĂ€ge mit aktivierten Kommentaren geben kann (nĂ€mlich jeder Beitrag, der erstellt wurde, wĂ€hrend der Standard-Kommentarstatus Kommentare erlaubt hat), mĂŒssen wir jeden dieser BeitrĂ€ge anpassen und Kommentare deaktivieren. Das kann auch ĂŒber das WordPress-Backend gemacht werden, wĂŒrde aber einige Zeit benötigen, selbst wenn es ĂŒber die QuickEdit-Funktion geschieht.

Dieser Kommentar automatisiert das via WP-CLI:

for post_id in $(wp post list --format=ids); do wp post update $post_id --comment_status=closed; doneCode-Sprache: Bash (bash)

Alle existierenden Kommentare löschen

AbhÀngig von der Menge deiner Kommentare, kannst du auch zu Kommentare im Backend gehen, alle Kommentare auswÀhlen und sie löschen. Wenn du jedoch mehrere Seiten an Kommentaren hast, kann das lÀnger dauern, als erforderlich. ZusÀtzlich musst du dann alle Kommentare zweimal löschen, da sie beim ersten Löschen zuerst im Papierkorb landen.

Deshalb spart es Zeit, sie via WP-CLI zu löschen:

wp comment delete $(wp comment list --format=ids) --forceCode-Sprache: Bash (bash)

Dieser Befehl listet erst alle Kommentar-IDs und entfernt sie dann mit dem --force-Flag, was bedeutet, dass sie direkt gelöscht werden und nicht im Papierkorb landen. Du kannst das Löschen der Kommentare auch auf einen bestimmten Status beschrĂ€nken, indem du das --status-Flag setzt, wenn du beispielsweise nur Spam-Kommentare löschen willst. Das wĂŒrde dann mit dem Flag --status=spam so aussehen:

wp comment delete $(wp comment list --status=spam --format=ids) --forceCode-Sprache: Bash (bash)

Fazit

WP-CLI kann dir allgemein viel Zeit sparen, insbesondere fĂŒr solche Aufgaben, bei denen du mit einer großen Datenmenge arbeiten musst. Das macht solche Arbeiten wesentlich angenehmer. Es gibt dabei sehr viele Möglichkeiten, die du in der Dokumentation von WP-CLI nachlesen kannst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert