Ich versuche, direkte Änderungen in der Datenbank zu vermeiden. Wie wäre es mit einem Plugin, z.B. WP Bulk Delete? Oder mit wp-cli.
Vor solchen Eingriffen bitte immer die Datenbank sichern (Backup).
Kann ich imit dem bulk delete tool auch nur posts löschen eines authors dessen id ich habe ? Ich habe auch backups von allem, daher wäre mir über phpmyadmin schon lieber
Hier fehlen mal wieder Infos … wieso hast du nur die ID eines Benutzers? Wenn du den Benutzer löschst, wirst du gefragt, ob du seine Beiträge löschen oder einem anderen Nutzer übertragen möchtest – dann sind die Beiträge aber diesem anderen Nutzer zugewiesen. Hast du den Nutzer nicht gelöscht, findest du ihn im Menü Benutzer. Alternativ kannst du den Benutzernamen in der Datenbank-Tabelle wp_users
nachschlagen.
Mit dem genannten Plugin kannst du Beiträge und Seiten nach Benutzername löschen.
Ich hatte eine gehackte Seite, welche nur aufgefallen ist, weil in der Sitemap 1000 Beiträge mit Werbeseiten innerhalb der Installation vollgemüllt und unsichtbar war.
Durch einen Blick in die datenbank konnte ich diese nun ausfindig machen und nach einer Überlegung, wie ich diese am schnellsten lösche, ist mir aufgefallen, dass der gemeinsame Nenner die ID war.
Mit dem Befehl:
DELETEFROMwp_posts
WHEREpost_author
=1031;
Konnte ich diese nun bereinigen. Mir ist klar, dass dies natürlich eine gründliche Überprüfung der Seite nicht ersetzt und dies wir nun auch getan 🙂
Dann wollen wir hoffen, dass da nicht verwaiste Datenbankeinträge übrig bleiben, die auf die gelöschten Post-IDs verweisen.
Schön, dass du für dich eine Lösung gefunden hast. Ich markiere den Thread als „gelöst“.
DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL
solltest du noch ausführen um die postmeta Einträge die nun verwaist sind zu löschen.
Ist keine Pflichtaufgabe, aber wer Ordnung mag 😀
Anonymous User 20597857
(@anonymized-20597857)
Ich hätte einfach die Beiträge(Liste in einer ordentlich langen Ansicht eingestellt), nach Autor sortiert und Seite für Seite alles markieren > löschen.
dazu hätte wordpress mir die „eingeschleusten“ Beiträge erst einmal anzeigen müssen. Die waren ja versteckt.
lg
Anonymous User 20597857
(@anonymized-20597857)
Ach so, sorry, habe ich überlesen, dass die Beiträge u.o. der Autor unsichtbar waren.
Dann ist jenes SQL der einzige Weg, der auch mir einfällt.
Ist aber eh arg, das einem so etwas nur durch einen Zufall auffällt. Also ein unsichtbarer Autor, dessen Müll-Beiträge und man weiß nichts von. 😨
Ob eins der großen Sicherheitsplugins da geholfen hätte?
Nochmal Sorry, habe nur den Startpost gelesen und den Rest überflogen, daher meine blode Antwort.
Hoffe, deine Site ist, wird wieder komplett sauber und das dann „hier kommst net rein!“ gilt.
So, nun check ich die Sitemaps meiner Sites – gespannt bin …