2011-01-05 6 views
0

Ich brauche Ihre Hilfe in Bezug auf Wordpress MySQL-Abfrage.Löschen der neuesten Wordpress-Tags aus der Datenbank

Situation

Ich benutze Wordpress 3.0.1 installiert ein "Clever-Plugin", die automatisch meine Beiträge mit Tags versehen. Aus Versehen habe ich markiert, dass dieses Plugin auch "verwandte Beiträge" markieren kann. Am Ende hat dieses Plugin nicht nur gute und relevante Tags für die Posts erstellt, die ich brauche, sondern auch viele Trash-Tags für un ähnliche Posts erstellt.

Was ich jetzt habe - viele Tags in der Datenbank und Panels, die wirklich gelöscht werden müssen. Ich kann in der Datenbank FROM WHAT TAG ID finden, die ich löschen möchte (wp_terms Tabelle, term_id Feld) diese Tags.

Mehr

ich Zugang zu phpMyAdmin haben, auch ich weiß, dass ich Datensätze löschen müssen, um SQL-Abfrage aus Tabellen mit

wp_terms, wp_term_relationships und wp_term_taxonomy

Auch Es gab ein Problem wie meines hier Mass delete unpopular Tags

Hilfe!

Vielleicht kann jemand, der mit WordPress vertraut ist, mir helfen und Abfrage schreiben, um Tags und alle benötigten Beziehungen von bestimmten term_id und bis zum Ende zu entfernen?

+0

entleert den Tisch eine Option? – andrewk

Antwort

1

Da term_id automatisch inkrementiert wird, können Sie wahrscheinlich alle Datensätze LÖSCHEN WHERE term_id ist größer als der Begriff ID der Tags, die Sie behalten möchten.

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE term_id >= [ID]); 

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy); 

Ersetzen Sie [ID] durch die erste ID, die Sie löschen möchten.

+0

Gut dachte ich über diese einfache Löschung in wp_terms Tabelle, aber irgendwie gibt es Beziehungen in wp_term_relationships, und wp_term_taxonomy gelassen, um Begriffe leer zu lassen ... so ist Problem komplexer - ich muss Ausdrücke und alle Beziehungen zu ihnen in Datenbank löschen halte es konsistent. – Babausis

+0

Ja, also sind diese Tabellen alle verwandt.Sie löschen einfach die Datensätze in wp_term_relationships, die nicht mehr mit den Termen aus wp_terms und wp_term_taxonomy verknüpft sind. Ich habe meinen Beitrag bearbeitet, um Ihnen den Code zu zeigen, von dem ich denke, dass er funktioniert. Ich kann bestätigen, wenn ich nach Hause komme. Bitte sichern Sie Ihre Datenbank. – Corey

+0

Danke, ich werde versuchen, dies heute später zu tun. – Babausis

1

Corey, vielen Dank für Hilfe, können Sie sich vorstellen ... ich jetzt nur wieder zu diesem Thema bekam ...

Und noch ein Update, vielleicht wird es einige Zeit für jemanden retten. Wenn Sie möchten, Massen-Tags von Wordpress löschen Datenbank (mySQL Abfrage in phpMyAdmin) zwischen einigen IDs, können Sie fast gleiche SQL-Abfrage ausführen:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE term_id >= [FromID] AND term_id <= [ToID]); 

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy); 

Ersetzen Sie einfach [AbsenderID] mit ID-Tag beginnen Sie löschen möchten, und [ToID] mit der Endung tad zum Löschen.

Also, wenn Sie Tags entfernen müssen aus von ID 231 bis ID 1098 sagen lässt, sieht letzte Abfrage wie folgt aus:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE term_id >= 231 AND term_id <= 1098); 

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy); 

Live long und gedeihen!

Verwandte Themen