WordPress: Die ultimative WordPress SQL-Befehle Sammlung

sql befehle wordpressHier starte ich meine Sammlung nützlicher SQL Befehle für WordPress …

Bei allen Befehlen ist immer zu bedenken, dass das jeweilige Tabellen Prefix angepasst werden muss. In diesem Thread wird das Standart Prefix wp_ für die Beispiele verwendet. Die SQL Statements  können bspw. mit einer Software wie dem MySQL-Backend PHPMyAdmin, ausgeführt werden. Ich persönlich bevorzuge die MySQL Shell.

WordPress Admin Password zurücksetzen

Admin Passwort vergessen. Welchem Admin ist das noch nicht passiert? Um das Passwort des Admin-Kontos zurückzusetzen, kann man folgendes SQL-Statement benutzen.

UPDATE wp_users
SET user_pass = MD5('NEUES_PASSWORT')
WHERE user_login ='admin' LIMIT 1;

Domain (URL) in WordPress ändern

Beim Umzug einer WordPress Installation auf einen neuen Server können die Daten des WorpdPress Core problemlos angepasst werden.

WordPress URL Grundeinstellungen anpassen

So werden die Grundeinstellungen des WordPress Systems angepasst:

UPDATE `wp_options`
SET option_value = 'http://www.DOMAIN_NEU.de'
WHERE option_name = 'siteurl' or option_name = 'home';

URL in Beiträgen (posts) ändern

So werden die Beiträge (posts) angepasst:

UPDATE wp_posts
SET post_content = REPLACE (post_content, 'http://www.DOMAIN_ALT.de', 'http://www.DOMAIN_NEU.de');

URL in Zusatzfeldern (custom fields, post meta) ändern

So werden die Custom Fields URL auf eine neue Domain angepasst:

UPDATE wp_postmeta
SET meta_value = REPLACE (meta_value, 'http://www.DOMAIN_ALT.de','http://www.DOMAIN_NEU.de');

Per SQL in WordPress: Protokoll von HTTP auf HTTPS in URL anpassen

Wer eine Umstellung von HTTP auf HTTPS ausführt, kann die Befehle analog auch entsprechend nutzen:

UPDATE wp_posts
SET post_content = REPLACE (post_content, 'http://www.domain.de', 'https://www.domain.de');
UPDATE wp_posts SET guid = replace(guid, 'http://www.domain.de','https://www.domain.de');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.domain.de', 'https://www.domain.de');

Revisionen löschen

Mit der Zeit entstehen auf einem Blog bzw. einer Webseite viele Beiträge. Beim Schreiben der Beiträge werden alte Versionen (Revisionen) gespeichert, so dass man später darauf zurückgreifen kann. Wer diese nicht mehr benötigt, kann sie löschen und damit die Datenbank für bessere Zugriffsgeschwindigkeit (Performance-Steigerung) optimieren. Um überflüssige Revisionen in der Datenbank zu löschen,  benutzt man dieses SQL Snippet:

DELETE P, TR, PM FROM wp_posts P
LEFT JOIN wp_postmeta PM ON (P.ID = PM.post_id)
LEFT JOIN wp_term_relationships TR ON (P.ID = TR.object_id)
WHERE P.post_type = 'revision'

Alle WordPress Tags anzeigen

Dieser SQL-Befehl zeigt alle Tags an:

SELECT DISTINCT name FROM wp_terms T
INNER JOIN wp_term_taxonomy TT ON T.term_id=TT.term_id
WHERE TT.taxonomy='post_tag';

Ungenutzte Tags finden und löschen

Dieser SQL-Befehl findet alle ungenutzten Tags der WordPress Webseite:

SELECT * FROM wp_terms T
INNER JOIN wp_term_taxonomy TT ON T.term_id=TT .term_id
WHERE TT.taxonomy='post_tag'
AND TT.count=0;

Dieser SQL-Befehl löscht ungenutzte WordPress Tags:

DELETE FROM wp_terms T
INNER JOIN wp_term_taxonomy TT ON T.term_id=TT .term_id
WHERE TT.taxonomy='post_tag'
AND TT.count=0;

Alle WordPress Plugins deaktivieren

Beim Testen und Probieren einer WordPress Installation kann es schnell auch mal passieren, das WordPress nur noch eine leere Seite auswirft. Das kann passieren, wenn ein Plugin Fehler verursacht und damit das komplette WordPress lahmlegt. Um in einem solchen Fall schnell alle Plugins zu deaktivieren kann folgender SQL-Befehl verwendet werden. Die Plugins können anschließend wieder schrittweise und einzeln über das Backend aktiviert werden, um heruas zu finden, welches Plugin die Probleme verursacht.

UPDATE wp_options
SET option_value = ''
WHERE option_name = 'active_plugins';

Tipp: eMail Adresen aller Kommentatoren ausgeben

Der SQL-Befehl gibt alle eMail-Adressen der Kommentatoren der WordPress Webseite aus. Hierbei sorgt DISTINCT dafür, dass jede eMail wirklich auch nur einmal ausgegeben wird.

SELECT DISTINCT comment_author_email FROM wp_comments;

Kommentare in alten Artikeln deaktivieren

Um Spam auf der WordPress Webseite zu reduzieren, kann man die Kommentarfunktion in allen bestehenden Beiträgen deaktivieren.

UPDATE wp_posts
 SET comment_status = 'closed'
WHERE post_status = 'publish';

Es gibt natürlich auch die Möglichkeit nur Kommentare bei Artikeln vor einem bestimmten Datum  zu deaktivieren.

UPDATE wp_posts
SET comment_status = 'closed'
WHERE post_date < '2011-04-01' AND post_status = 'publish';

Umgekehrt kann man die Kommentarfunktrion auch wieder anschalten:

UPDATE wp_posts SET comment_status='open' WHERE post_status = 'publish' AND post_type = 'post';

Autor eines Beitrags (post) ändern

Mit diesem Befehl können alle Beiträge eines bestimmten Autors einem anderen Autor zugewiesen werden. Um die jeweiligen IDs der Autoren zu bestimmen, hier ein Tipp …

UPDATE wp_posts
SET post_author=NEUE_AUTOR_ID
WHERE post_author=ALTE_AUTOR_ID;

Alte und unbenötigte Post Meta Daten anzeigen und löschen

Plugins installieren und deinstallieren ist eine häufig anfallende Arbeit bei WordPress Webseiten. Einige dieser Plugins benutzen Post Meta Felder um Daten zu sichern. Beim Deinstallieren des Plugins werden diese nicht gelöscht und verbleiben in der entsprechenden Tabelle. Um die Größe der Tabelle zu reduzieren und damit die Zugriffsgeschwindigkeit der Datenbank zu erhöhen, kann man diese Daten löschen.

Mit folgendem Befehl kann man die Summe der meta_key im WordPress anzeigen:

SELECT count(*) FROM wp_postmeta;

So werden die vorhandenen Post Meta angezeigt:

SELECT DISTINCT meta_key FROM wp_postmeta;

Mit folgendem Befehl kann man beliebige meta_key löschen:

DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';

Spam Kommentare endgültig löschen

Wer einmal mit größeren Mengen Spam konfrontiert wurde, weiß den folgenden Befehl zu schätzen. Dieser löscht alle als Spam identifizierte Kommentare auf einen Schlag:

DELETE FROM wp_comments WHERE comment_approved = 'spam';

Der Befehl alternativ auch dazu verwendet werden, zu moderierende Kommentare eines bestimmten Kommentators zu löschen

DELETE FROM wp_comments WHERE comment_approved = '0' AND  comment_author='SpamKommentatorXY';

Kommentatoren mit bestimmter eMail Adresse

DELETE FROM wp_comments WHERE comment_approved = '0' AND comment_author_email='nervender@spammer.com';

Kommentatoren mit bestimmter URL

DELETE FROM wp_comments WHERE comment_approved = '0' AND comment_author_url='spammer.com';

Kommentatoren mit bestimmter IP

DELETE FROM wp_comments WHERE comment_approved = '0' AND comment_author_IP='xxx.xxx.xxx.xxx';

comment_approved kann folgende Werte annehmen:

  • 0 = Kommentar erwartet Moderation (nicht freigegeben)
  • 1 = Bestätigter und freigegebener Kommentar
  • spam = Kommentar wurde als Spam markiert

WordPress Pingbacks löschen

Populäre Webseiten kriegen mit der Zeit viele Pingbacks auf ihre Artikel. Das kann die Datenmenge in der Datenbank nicht unerheblich erhöhen und die Zugriffsgeschwindigkeit und damit die Performance der Seite herunter ziehen. Der folgende Befehl löscht die Pingbacks der WordPress Seite:

DELETE FROM wp_comments WHERE comment_type = 'pingback';

Wird fortgesetzt … Fragestellungen und Vorschläge einfach in den Kommentaren posten.

 

1 thought on “WordPress: Die ultimative WordPress SQL-Befehle Sammlung”

Leave a Comment