Je tomu už skoro měsíc, kdy se v diskuzi ve Facebook skupině věnující se WordPressu objevil dotaz, jak smazat všechny spam komentáře, které jsou označeny, jako spam.
Rozhodl jsem se na tento problém podívat detailněji.
Abychom předešli nedorozumění pojďme si ukázat, jaké typy komentářů budeme mazat:
[singlepic id=78]
Jedná se tedy o všechny komentáře v záložce spam.
Smazání komentářů pomocí SQL dotazu
Jako základním krokem vidím smazání komentářů přes SQL dotaz do databáze. Všechny komentáře se nacházejí v tabulce wp_comments
Rozdělení komentářů je ve sloupečku comment_approved. Dotazy mohou tedy vypadat takto:
Smazání všech komentářů, které čekají na schválení
DELETE from wp_comments WHERE comment_approved = \’0\‘;
Smazání všech komentářů, které jsou již schválené
DELETE FROM wp_comments WHERE comment_approved = \’1\‘;
Smazání všech komentářů v koši
DELETE FROM wp_comments WHERE comment_approved = \’trash\‘;
A konečně smazání všech komentářů označených jako spam
DELETE FROM wp_comments WHERE comment_approved = \’spam\‘;
Osobně volím tuto možnost, protože pokud to děláte například přes phpMyAdmin, tak si rovnou můžete udělat zálohu, kdyby náhodou 🙂
Po provedení dotazu na smazání spam komentářů budete mít databázi očištěnou od těchto špinavých komentářů 🙂
[singlepic id=79 w=320 h=240 float=]
A zkontrolovat to opět můžeme v administraci WordPressu:
[singlepic id=80 w=320 h=240 float=]
Použitím pluginu
Pro lenochy a pro ty, kteří se nebojí nacpat si do WP další plugin jsou tu plugin WPCommentCleaner. Který po nainstalování pomůže s mazáním komentářů.
Po instalaci se plugin objeví přímo v menu v administraci WordPressu:
[singlepic id=81 ]
No a samozřejmě nabídka, obsahující bohužel jen 3 typy komentářů a to neschválené komentáře, spam komentáře a schválené komentáře.
[singlepic id=83]Po smazání dojde tedy k odstranění komentářů podle zvoleného „filtru“ 🙂 Bohužel bez možnosti zálohy nebo smazání komentářů z koše.
[singlepic id=82]
A jak řešíte mazání komentářů ve WordPressu vy? Manuálně mažete přes administrac,i nebo máte lepší způsob? 🙂
SQL dotaz není dobrý nápad. Pokud chcete smazat pouze Spam, tak tam je přímo tlačítko „Hromadně smazat spam“ a nemusíte vůbec pracovat s databází. A pokud jde o komentáře určené ke schválení, tak tam je situace trochu složitější, ale při použití zmiňovaného SQL dotazu dojde k tomu, že může v tabulce wp_commentmeta zůstat spousta zbytečných dat (a to navždy). Uvedený plugin tuto situaci také patrně moc neřeší a využívá stejný SQL dotaz.
Děkuji za podnět k zamyšlení. Osobně jsem o tomto nevěděl. Nicméně jsem chtěl WPCommentCleaner upravit, aby mazal právě věci, které nyní nemaže. Takže bych se mohl podívat, jaký SQL dotaz používá a popř. jej editnout aby mazal i příslušná data z wp_commentmeta.
Díky za tip určitě využiji mám v plánu stavět hodně webů na wordpressu.
ja som doteraz mazal spam komentáre ručne ale toto je celkom zaujímavý spôsob asi si ho vyskúšam, mal by trochu urýchliť prácu
Ja doposud ručně. Takže díky za tip na nový plugin. Za chvíli bude WordPress umět sám i psát texty 🙂
Spravuji několik wordpressů a tyhle pluginy se určitě hodí, usnadní práci. Každopádně díky za dalsí tip.
Díky za tento tip http://wordpress.org/plugins/wpcommentcleaner/, určitě vyzkouším, jinak nic proti phpMyAdmin, ale doporučuji raději Adminer, Jakub Vrána odvádí dobrou práci.
Pokud zrovna nemáte totálně zaspamovaný web, tak SQL a plugin snad ani není potřeba ne? Stačí smazat s administrace. Osobně bych se v sql moc extra nehrabal a plugin na takovou věc je prostě zbytečný a ještě nebezpečný.
Super,díky, přesně toto jsem potřeboval. Včera jsem dostal pod křídla web s 192 xxx komentáři, které byly nevyžádané. Použil jsem plugin a je po nich.
Zmizela možnos označení komentáře i příspěvku pro úpravu, či smazání v administraci. Nejprve redaktor, nyní i vyší post. Admin je funkční.