[教學]如何批次刪除WordPress垃圾留言?
WordPress留言迴響,時常充滿垃圾留言。面對大量的垃圾留言,可以透過Akismet來做歸類與防範,雖然可以把大部分做正確歸類,但是面對這個龐大的垃圾留言,你該怎麼批次做清理?清理批次垃圾留言可以透過「WP Optimize」外掛來手動或自動批次刪除。不過當量達到幾千筆、幾萬筆,直接透過外掛可能會讓網站的資源使用當機,這時候就得尋求SQL指令解法。
雖然WordPress官方有不少的批量刪除垃圾留言外掛,但這類外掛基本上安裝後處理完畢垃圾留言就把外掛刪除。既然遇到過大量垃圾留言攻陷,下次一定會提防,因此下次會使用到的機率也不高。除了透過外掛之外,利用SQL指令也是很方便,甚至利用指令可以更快速的幫你從「已核准 approved」的留言,快速依照IP或者是信箱,批次刪除整理。
上回我們介紹過WordPress批次開啟或關閉留言,這回要來介紹的是如何透過SQL指令的方式快速來做垃圾留言做批量清理。對於垃圾留言、垃圾迴響,其實香腸周遭很多朋友都被攻陷了,甚至攻陷到被dreamhost主機商封鎖wp_comments資料表,讓他不能使用。因為垃圾留言被灌爆幾十萬則,非常誇張。面對垃圾留言,可以考慮安裝驗證碼、或者是換Facebook留言、還是安裝Disqus都是一種新選擇。
但如果你是已經被垃圾留言攻陷,想要解決這個問題。可以登入資料庫的phpMyadmin直接下SQL語法批量做處理。不過網路上的語法大部分都是針對已經被歸類到垃圾留言的內容,可以做SQL執行批次刪除。假設你網站原先沒有安裝Akismet幫你做垃圾留言過濾分類,所有的留言已經洗到已核准(approved comments)中,怎麼清理?其實也是可以的,找出IP規則,就能批次處理。
一、透過wp-optimize批量清理垃圾留言
最簡單的方式可以透過外掛來做留言批次刪除動作,但是前提是垃圾留言已經被歸類到垃圾中,一次50筆100筆刪除很麻煩,可以直接使用外掛來做批次刪除,但是量太大可能會刪除到當機或者是系統資源咬住,所以使用上請小心。做這類大量處理之前,記得先備份資料庫。
安裝外掛:WP-Optimize
二、執行SQL批次刪除垃圾留言
這種方式,需要透過phpMyadmin登入直行語法進行刪除的動作。請務必先行資料庫備份後再進行操作,以免操作失當造成資料毀損。
第1步 首先登入您的phpMyadmin,然後找到左側您的資料庫,再看到右側並切換到【SQL】模式,輸入以下語法後點選﹝執行﹞即可批次刪除所有屬於「spam垃圾」的留言。
第2步 執行完畢後會出現影響O列,就是代表處理完畢囉!
三、依照IP批次刪除已核准的垃圾留言
有時候因為沒有安裝防垃圾留言機制,造成垃圾留言直接進入已核准中,不管你點幾百次﹝檢查清單中是否有垃圾﹞,這些一看就知道是垃圾留言的內容,還是不會邦你轉移到垃圾留言區。這時候該怎麼辦?一筆筆刪除嗎?其實你有更好的方式。你可以根據IP、或者是信箱來處理。一般垃圾留言的信箱比較沒規則,但是IP可能會很大量是使用同一個,透過IP會是一個不錯的解決方法。
第1步 進入phpMyadmin,左側找到您資料庫後,右側請選擇【SQL】並輸入以下語法,然後點選執行。
第2步 執行完成後可以立刻看到影響的列數,就是表示已經完成刪除的部分。 接著請把所有IP都過濾並刪除,就可以囉!
第3步 要注意!WordPress的留言資料表其實還有一張是紀錄Meta表頭資料。如果你單純刪除留言,雖然後台會看不到,但是對於資料庫的優化上卻不是最佳話。會有很多無用資料紀錄在資料庫中,關於這點建議是做一個徹底清楚,因此請直行以下語法。
第4步 執行完畢後就可以了,他會搜尋wp_commentmeta中,只要comment_id與留言資料表(wp_comments)比對,comment_id如果找不到就把該筆位於wp_commentmeta資料刪除,來做一個優化。
第5步 完成清理後,你會發現留言瞬間從5000多變成剩下1000多筆資料囉!整個清理得乾乾淨淨,就算被歸類到已核准也不用怕,一樣能優化乾淨。
關於資料庫優化,可以參考這篇文章:WordPress 資料庫瘦身,超高效優化!