Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Praktische Anwendung von SQL-Statements bei Wordpress
Alte Revisionen von WordPress-Einträgen löschen
Wenn man im WYSIWYG-Editor einen Beitrag bearbeitet, so erzeugt WordPress standardmäßig alle 60 Sekunden eine neue Revision. Auf Dauer kann dies zu überflüssigen Einträgen führen, welche die Datenbank sehr stark anwachsen lässt und in ihrer Performance beeinträchtigt. Im WordPress selber gibt es aber leider keine Möglichkeit, dies einzustellen und zu begrenzen.
Eine Möglichkeit als Lösung ist es, die Revisionen aus der Datenbank nachträglich heraus zu löschen.:
DELETE FROM wp_posts WHERE post_type="revision";
Unmoderierte Spam-Kommentare als Spam zuordnen oder löschen
Nach längerer Zeit sammeln sich bei aktivierten Kommentaren sehr viele Spam-Kommentare an. Dies lassen sich im Wordpress händisch als Spam markieren oder in den Papierkorb löschen. Ab einem bestimmten Grad von mehreren hundert oder tausend Einträgen wird dies aber sehr langwierig und umständlich. Einfacher ist es daher, die unmoderierten Spam-Kommentaren mit einem einzelnen SQL-Statement zu zuordnen. Der Name der Datenbank ist in dem Beispiel 'Wordpress_b.:
UPDATE wordpress_b.wp_comments SET comment_approved='spam' WHERE comment_approved=0;
Man könnte statt 'spam' auch 'trash' für den Papierkorb wählen, oder die unmoderierten Einträge mit dem Statement 'DELETE' direkt löschen, aber …
Ein Shell-Script mit SQL-Befehlen
SQL-Statements lassen sich natürlich auch wunderbar in Shell-Skripte integrieren. In dem Beispiel-Skript werden also alle als Spam oder im Papierkorb abgelegte Kommentare gelöscht.
#!/bin/sh mysql <<EOF use wordpress_b; DELETE FROM wp_comments WHERE comment_approved="trash"; DELETE FROM wp_comments WHERE comment_approved="spam"; EOF
Dies lässt sich natürlich weiter automatisiert steigern indem das Skript mit einem Cronjob periodisch zu einem bestimmten Zeitpunkt ausgeführt wird.