Melindungi WordPress dari Spam Secara Sederhana Tanpa Plugin

Photo on Freepik

Hay Guys, pada Artikel kali ini Mangcoding akan berbagi Tips Melindungi WordPress Anda dari Spam secara sederhana namun efektif dan tanpa harus Install plugin di Website Anda, coba perhatikan screenshot dibawah ini!

mangcoding spam

Komentar yang muncul pada screenshot Blog diatas itu hanya dalam waktu satu bulan saja, Tapi akhirnya ada solusi yang mengatasi masalah tersebut, kinerjanya adalah memblokir semua komentar yang ditinggalkan oleh robot spam. Lalu apa saja manfaat dari penggunaan cara ini ?

  • Anda tidak perlu memasang Plugin Antispam tambahan
  • Tidak ada lagi captcha
  • Mudah dipasang dan hanya dengan melakukan 3 cara sederhana saja

Langkah 1 – Teks palsu di formulir komentar

Pertama-tama, Anda harus mencari tahu caranya, bagaimana formulir komentar dimasukkan pada halaman. Sebenarnya ada dua cara, pertama – form HTML ada di comments.php, cara kedua – form disisipkan oleh comment_form() pada fungsi WordPress.

Jika form komentar ada di comments.php

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

<textarea id="comment" name="comment"></textarea><!-- default textarea (it will be fake for bots) --> 
<textarea id="just_another_id" name="just_another_id"></textarea><!-- you should add something like this -->
Jika formulir komentar disisipkan oleh fungsi comment_form()

Dalam hal ini Anda harus menggunakan kait tindakan dibawah ini :

function 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">Comment:</label>
            <textarea id="just_another_id" name="just_another_id" cols="45" rows="8" aria-required="true"></textarea>
        </p>';


    return $default;
}


add_filter('comment_form_defaults', 'add_non_fake_textarea_field');

Masukkan kode diatas ke functions.php lokasi Anda di direktori tema saat ini.

Langkah 2 – Menyembunyikan bidang palsu melalui CSS

Buka postingan dengan formulir komentar di dalamnya. Anda akan melihat dua bidang textarea. kemudian silahkan sembunyikan textarea default, karena textarea default akan menjadi «input palsu» untuk robot spam.
Anda dapat menyembunyikannya sesuka Anda. Sebagai contoh :

#comment {
  position:absolute;
  left:-9000px;
}


.hello {
  left: auto;
}

Jika Anda tidak yakin di mana harus menyisipkannya, Anda cukup tambahkan kode ini ke style.css file tema Anda saat ini.

 

Langkah 3 – Memblokir komentar spam

Akhirnya, langkah terakhir. Kode ini akan memblokir komentar apa pun dengan textarea komentar default yang diisi. Spambot tidak tahu tentang «fake field» jadi mereka selalu mengisi textarea default dengan name=”comment” or id=”comment”. Dan manusia tidak pernah mengisinya karena tidak terlihat oleh mereka. Cukup sederhana, ya?
Tambahkan kode berikut ke functions.php file.

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 cara memperbaikinya?

Pada WordPress 4.4 wp-comments-post.php yang terletak di direktori situs Anda telah diubah, selain itu pre_comment_on_post tidak dapat menggantikan bidang komentar palsu. Ada cara dan solusi yang bisa Anda lakukan :
Pada folder situs Anda, buat file, Anda dapat menamainya stopspam.php misalnya. berikut adalah kode untuk file ini :

<?php
    $fake = trim($_POST['comment']);


    if(!empty($fake)) {
        exit;
    }


    $_POST['comment'] = trim($_POST['just_another_id']);


    require(dirname(__FILE__) . '/wp-comments-post.php');

1. Ubah atribut form action ke file ini ( stopspam.php ). Jika Anda menggunakan comment_form(), akan lebih mudah dilakukan dengan JavaScript.
2. Blokir default wp-comments-post.php dengan .htaccess :

<Files wp-comments-post.php> <limit GET> satisfy any order deny,allow deny from all require valid-user </limit> </Files>

 

Referensi : Rudrastyh