Cara sederhana Memblokir komentar spam tanpa plugin

Jika Anda tidak menggunakan plugin antispam, Anda mungkin memiliki ribuan komentar spam. Sebagian besar dari m...

logo ↪ Uncategorized

Jika Anda tidak menggunakan plugin antispam, Anda mungkin memiliki ribuan komentar spam. Sebagian besar dari mereka yang ditinggalkan oleh robot spam. Ini screenshot dari salah satu blog saya:

komentar spam oleh robot spam
Semua komentar ini telah muncul di blog dalam waktu satu bulan! Tapi akhirnya saya menemukan solusi yang bagus, yang benar-benar blok semua komentar, yang ditinggalkan oleh robot spam. Beberapa manfaat:

Alt textCara sederhana Memblokir komentar spam tanpa plugin

Anda tidak perlu plugin antispam lagi
tidak lebih captcha
mudah untuk menginstal, hanya tiga langkah sederhana
Langkah 1. textarea palsu dalam bentuk komentar

Pada awalnya, Anda harus menemukan cara, bagaimana bentuk komentar yang memasukkan ke halaman. Sebenarnya, ada dua cara, pertama – HTML dari bentuk yang di comments.php , cara kedua – formulir tersebut dimasukkan oleh comment_form () fungsi WordPress.

Jika formulir komentar di comments.php

Yang perlu Anda lakukan adalah menambahkan field input textarea lain setelah bawaan komentar textarea seperti ini:

< Textarea name = “comment” id = “komentar” > </ textarea > <! – Textarea default (akan palsu untuk bot) ->
< textarea name = “just_another_id” id = “just_another_id” > </ textarea > <! – Anda harus menambahkan sesuatu seperti ini ->
Itu saja.

Jika bentuk komentar dimasukkan oleh comment_form () function

Dalam hal ini Anda harus menggunakan kail tindakan ini:

Fungsi add_non_fake_textarea_field ( $ default ) {
$ commenter = wp_get_current_commenter ( ) ;
$ default [ ‘comment_notes_after’ ] =.
‘<p class = “comment-form-just_another_id”>
<Label for = “just_another_id”> Komentar: </ label>
<Textarea id = “just_another_id” name = “just_another_id” cols = “45” rows = “8” aria-diperlukan = “true”> </ textarea>
</ p> ‘ ;
pulang $ default ;
}

add_filter ( ‘comment_form_defaults’ , ‘add_non_fake_textarea_field’ ) ;
Menyisipkan kode ini ke Anda functions.php terletak di direktori tema saat.

Langkah 2. Menyembunyikan bidang palsu melalui CSS

Membuka posting dengan formulir komentar di dalamnya. Anda akan melihat dua bidang textarea. Jadi, mari kita menyembunyikan salah satu dari mereka (itu harus textarea default, karena akan «masukan palsu» untuk robot spam).

Anda dapat menyembunyikannya dengan cara apapun yang Anda inginkan. Sebagai contoh:

#comment {
posisi : mutlak ;
kiri : -9000px ;
}
Jika Anda tidak yakin di mana untuk memasukkannya – hanya menambahkan kode ini untuk saat ini tema Anda style.css berkas.

Langkah 3. Memblokir komentar spam

Akhirnya, langkah terakhir. Kode ini akan memblokir setiap komentar dengan penuh standar komentar textarea. Robot spam tidak tahu tentang «bidang palsu» sehingga mereka selalu mengisi textarea default dengan nama = “comment” atau id = “comment” . Dan manusia tidak pernah mengisinya karena tidak terlihat bagi mereka. Cukup sederhana, ya?

Tambahkan kode berikut ke functions.php berkas.

function block_spam_comments ( $commentdata ) {
$fake_textarea = trim ( $_POST [ ‘comment’ ] ) ;
if ( ! empty ( $fake_textarea ) ) wp_die ( ‘Error!’ ) ;
$comment_content = trim ( $_POST [ ‘just_another_id’ ] ) ;
$_POST [ ‘comment’ ] = $comment_content ;
return $commentdata ;
}

add_filter ( ‘pre_comment_on_post’ , ‘block_spam_comments’ ) ;
Mengapa antispam berhenti bekerja di WordPress 4.4 dan bagaimana memperbaikinya?

Di WP 4.4 wp-comments-post.php yang terletak pada direktori situs Anda telah berubah, setelah itu kait pre_comment_on_post kebakaran terlambat dan tidak dapat menggantikan kolom komentar palsu. Ada keputusan lain.

Dalam folder situs Anda membuat file, Anda dapat nama itu stopspam.php misalnya. Ini adalah kode untuk file ini:
<?php
$fake = trim ( $_POST [ ‘comment’ ] ) ;
if ( ! empty ( $fake ) )
exit ;
$_POST [ ‘comment’ ] = trim ( $_POST [ ‘just_another_id’ ] ) ;22

membutuhkan ( dirname ( __FILE__ ) . ‘/wp-comments-post.php’ ) ;
Perubahan bentuk tindakan atribut file ini ( stopspam.php ). Jika Anda menggunakan comment_form () , maka akan mudah untuk melakukan dengan JavaScript.