[ad_1]
Ich versuche, direkte Arbeiten an der Datenbank zu vermeiden, weil das recht fehleranfällig ist und beim Löschen nicht unmittelbar ersichtlich ist, auf welche Tabellen sich das noch auswirkt (z.B. wp_termmeta
und wp_term_relationships
).
Statt dessen würde ich mit einer Mehrfachaktion arbeiten:
Unter (1) passt du die Ansicht so an, dass dir z.B. 2000 Kategorien auf einmal angezeigt werden (2). In der Tabelle sortierst du nach Anzahl (3), wählst zuerst alle aus und deaktivierst dann per Kontrollkästchen (4) die, die du nicht löschen möchtest. Das nochmal wegen doppelter Negation (die abwählen, die nicht gelöscht werden sollen) sorgfältig prüfen und dann per Mehrfachaktion löschen (5).
Bei einem Webhosting mit SSH-Zugriff käme alternativ die Nutzung von WP-CLI in Frage (wp term delete).
Vor solchen Operationen ist ein Backup der Datenbank sinnvoll.
Hallo Bego,
herzlichen Dank für die schnelle und ausführliche Antwort!
Leider ist der Server mit dieser Anforderung überlastet, er spuckt einen WordPress-Fehler aus, obwohl man nur maximal 999 Beiträge gleichzeitig anzeigen lassen kann, was dann aber auch klappt. Bis alle 999 Beiträge angezeigt werden, dauert eine ganze Weile. Und bis der Fehler kommt, dauert auch wieder etwas aber es wurde nichts gelöscht. Da ist halt WordPress nicht besonders schnell, mit PHPmyAdmin geht das erheblich schneller aber Du hast Recht, man weiß nicht, was man tut.
Und mit dem Terminal habe ich nicht so die Erfahrung und müsste mir das auch genau durchlesen. Vielleicht ist das aber die einzige Lösung.
Aber laut dieser Übersicht ist keine einzige Kategorie überhaupt benutzt. Es gibt aber ein paar manuell angelegte. Die werden aber vermutlich nicht als benutzt angezeigt, weil es nur Entwürfe sind. Ich habe davon einen Screenshot gemacht und könnte diese wieder manuell anlegen.
Leider ist der Server mit dieser Anforderung überlastet, er spuckt einen WordPress-Fehler aus, obwohl man nur maximal 999 Beiträge gleichzeitig anzeigen lassen kann …
Sowas hatte ich schon befürchtet. Deshalb mein Vorschlag, die Anzahl der angezeigten Kategorien auf 2.000 zu begrenzen. – Immer noch zu hoch …
Mach bitte ein Backup der Datenbank, installiere das Plugin TaxoPress und gehe dann auf TaxoPress > Tags verwalten. Hier wählst du Beiträge → Kategorien (1), gehst in den Tab „Delete unused terms“, wählst bei „minimum number of uses for each term“ 1 aus (= Kategorie muss mindestens in einem Beitrag genutzt worden sein) und klickst auf „Delete rarely used“. Ich hoffe, dass Arbeitsspeicher, Ausführungszeit und Maximale PHP-Eingabe-Variablen mitspielen. Einen Versuch ist es aber wert.
Das habe ich auch schon getestet, ähnliches Problem, gleiches Ergebnis. Mit rund 20000 Elementen ist wohl ein Shared Webhosting Paket überlastet.
Alternative:
- Backup der Datenbank
- lokale WordPress-Installation einrichten (z.B. mit Local-WP)
- Backup lokal wiederherstellen und in Datenbank-Tabelle
wp_options
die Feldersiteurl
undhome
auf die lokal verwendete Domain ändern - Lokal TaxoPress oder wp-cli verwenden
- Wenn alles erledigt ist, Backup der Datenbank und restore auf dem Server; Felder
siteurl
undhome
wieder auf die URL der Website zurücksetzen.
Das Einrichten einer Arbeitsumgebung ist aufwendig, aber die sauberste Lösung.