前言
垃圾評論,如今可以說是無處不在,作為 WordPress 使用者的我們,防止垃圾評論的侵擾是必須要做的。 而且垃圾評論也就算了,居然還不訪問我們的網站直接用腳本刷,連個 pv 值都不貢獻下,太摳啦。
在遮罩垃圾評論方面,Akismet 外掛程式還是很不錯的,能起到一定的效果。 但還是不夠給力,接下來的教程就可以基本杜絕垃圾評論了。
方法 1:評論黑名單加強版(推薦)
WordPress 有個“評論黑名單”功能,這個功能在 wordpress 後台-“討論”功能表裡面,我非常喜歡這個功能。 它的作用是:當評論的內容、評論者名稱、URL、電子郵件或IP位址中包含其中任何關鍵字時,系統將自動將評論標記為「垃圾評論」。 但有個不好的地方是評論者的評論還是能提交上來,你必須手動去清理這些「垃圾評論」…
下面的方法就是彌補這個缺陷的,當評論的內容、評論者名稱、URL、電子郵件或IP位址中包含其中任何關鍵字時(當然,這些關鍵字需要你自己去設置好~),評論將不能提交!
將以下代碼放到我們的主題的 functions.php
中
方法 2:評論中必須有中文
遮罩純英文或純日文評論,評論中必須含有中文:
方法 3:遮罩暱稱,評論內容帶連結的評論
方法 4:遮罩長連結評論
當評論者連結長度大於 50 個字元時,評論將被當作垃圾評論。
function lxtx_lang_url_spamcheck($approved, $commentdata) {
return (strlen($commentdata['comment_author_url']) > 50) ?
'spam' : $approved;
}
add_filter('pre_comment_approved', 'lxtx_lang_url_spamcheck', 99, 2);
方法 5:設置一個發送評論前需要勾選的選擇框
我們通常使用的防機器人的方式是增加驗證碼,如:數位字母驗證碼、算術驗證碼等,在這裡介紹的是添加一個發送評論前需要勾選的選擇框,來判斷是否人工。
首先,在你的評論範本頁面的適當位置加入下面的代碼,一般是在 comments.php
這個檔中。
<label for="enable"><input type="checkbox" name="enable" id="enable" onClick="apply()" class="enable_checkbox"> Check this box to enable the send button</label>
然後,引入下面的 JS 代碼:
<script type="text/javascript">
function apply() {
var form_submit = document.commentform.submit;
var form_checkbox = document.commentform.enable;
form_submit.disabled=true;
if(form_checkbox.checked==true) {form_submit.disabled=false;}
if(form_checkbox.checked==false) {form_submit.enabled=false;}
}
</script>
方法 6:禁止不訪問網站頁面直接評論
很多機器人和惡意評論的人為什麼可以不訪問網站的任何頁面,卻能留下評論回復呢? Spam 的原理其實很簡單:發表評論是由 wp-comments-post.php
檔執行完成的,只要機器人確定你的網站是 WordPress 搭建,通過軟體直接讀取網站根目錄下的 wp-comments-post.php
,並寫入內容即可完成,無需訪問網站的任何頁面。
那麼,怎麼預防這種形式的垃圾評論呢? 下面有 2 種方法。
(1) 通過修改.htaccess
文件判斷評論來路是否是通過網站的頁面讀取 wp-comments-post.php
檔的,如果否則禁止寫入。 在.htacess
中加入以下代碼