WordPress 現在的使用是越來越廣泛,WordPress 這個玩意兒是從國外傳過來的,WordPress 也是國外 SEO 們使用最多的程序。同時與之而來的是相關 SEO 工具的開發也越來越多,技術也越來越高。

記得曾經使用過的一個英文版的評論工具可以快速找到 N 多的 WordPress 博客,同時還可以區分哪些是需要驗證碼、哪些是不需要驗證碼、哪些是評 論需要審核、哪些是不需要審核、哪些是評論有跳轉、哪些是沒有做跳轉... 等一系列的選項,工具做得很精細,同時還有代理登陸等模擬人工訪問等功能,雖然 這些做得很好,但是製造的產物對於俺們這些博主而言特別是中文博主而言,簡直就是萬惡之源。

喜歡倒騰博客的童鞋們都知道,雖然評論能給博客帶來活力,同時也是一個交流的平台,但是垃圾評論氾濫也不是件好事情,不僅浪費空間資源,同時會降低 網頁的內容質量對用户體驗產生不良影響;而對於很多人一提到處理垃圾評論都會想到使用類似 Akismet 這樣的垃圾評論過濾插件,我的破折君博客剛開始也 是按照這個思路來做的,主要用到了下面三個常用的方法:

1 、 WordPress 自帶的 Akismet,默認禁用。啓用後要到其網站上註冊一下,拿到一個 api key 才能用。該 api key 對於個人用户是免費的。

2 、 Spam Free WordPress 。文章裏推薦的是另一個,不過看到這個評分比較高,所以裝這個了。

3 、 Math Comment Spam Protection 。加了個驗證碼,讓做一道數學題。

但是這三個插件雖然能阻擋一些垃圾評論,但是很多時候都是放在垃圾評論裏面,但是也還是要手工刪除。剛開始覺得沒什麼,但是隨着破折君博客的流量的 增加,垃圾評論越來越多,不止中文的還有很多的純英文垃圾評論,有時候一天甚至達到四五百條,刪都刪的累了,所以就想通過禁止純英文評論來解決這個問題。

評論工具不同於手工填表單的方式進行評論而往往是利用 ajax 入口或者 wp-comments-post.php 或者其它入口進行發送。但是不管他從哪裏入口,wp 鈎子的作用應該一直存在,所以我在主題模板的 functions.php 下面再加入以下代碼,對純英文評論進行過濾,就可以解決:

function scp_comment_post( $incoming_comment ) {

$pattern = '/[一-龥]/u';

// 禁止全英文評論

if(!preg_match($pattern, $incoming_comment['comment_content'])) {

wp_die( "You should type some Chinese word (like "你好") in your comment to pass the spam-check, thanks for your patience! 您的評論中必須包含漢字!" );}

return( $incoming_comment );}

add_filter('preprocess_comment', 'scp_comment_post');

通過這個方法可以讓純英文內容不能評論,這比把純英文評論標記為垃圾評論更好一些,省去了再去刪垃圾評論的時間。