WordPress-Kommentare zu einem anderen Beitrag verschieben

14. Juli 2015 · Anwendungen · andreas · 2 Kommentare

WordPress bietet standardmäßig keine Möglichkeit, Kommentare zwischen verschiedenenen Beiträgen (und / oder Seiten) zu verschieben. Gerade für einmalig durchzuführende Aufräum- oder Umbauarbeiten macht es allerdings auch wenig Sinn, sich auf die Suche nach einem zuverlässigen und vertrauenswürdigem Plugin zu begeben, da die Aufgabe auch mit einigen wenigen SQL-Statements zu erledigen ist.

Zunächt müssen die IDs der beiden Beiträge ermittelt werden, zwischen denen verschoben werden soll. Wer das nicht direkt in der Datenbank erledigen will, kann auch die WordPress-Oberfläche zu Rate ziehen: einfach beim jeweiligen Artikel auf “Bearbeiten” klicken und die ID aus der URL entnehmen, z.B. “/wp-admin/post.php?post=3527&action=edit”.

Dann können die Kommentare verschoben werden:

UPDATE wp_comments SET comment_post_id = <neue_ID> WHERE comment_post_id = <alte_ID>;

Anschließend muß noch die Anzahl der zu einem Beitrag vorhandenen Kommentare korrigiert werden, was nach zwei weiteren SQL-Befehlen erledig ist:

UPDATE wp_posts SET comment_count = 0 WHERE ID = <alte_ID>;
UPDATE wp_posts SET comment_count = (SELECT COUNT(*) FROM wp_comments WHERE comment_post_ID = <neue_ID> AND comment_approved = 1) WHERE ID = <neue_ID>;

Nach der Verschiebung sind mit dem alten Beitrag keinerlei Kommentare mehr verknüpft, weshalb hier die Anzahl direkt auf “0” gesetzt werden kann. Für den neuen Beitrag ist die Anzahl der Kommentare zu ermitteln, wobei für die Spate “comment_count” nur die tatsächlich genehmigten Kommentare gezählt werden dürfen.