Cara Melindungi Nama dan E-mail Penulis Pada Form Komentar

Pernah terpikir tidak kalau orang lain bakal menggunakan nama dan/atau email dari penulis blog untuk memposting komentar di blog penulis tersebut? Tentunya tidak masalah kalau moderasi komentar diaktifkan, tapi sangat bermasalah kalau moderasi komentar dimatikan. Tentunya kita tidak mau kan orang lain memakai nama kita untuk memberi komentar, apalagi di blog kita sendiri. Nah, untuk mencegahnya kita bisa melakukan trik simpel yang saya dapat dari Dagon Design. Oh ya sebelum baca lebih lanjut, saya ingatkan kalau cara ini khusus buat pengguna WordPress, kalau nggak ntar pengguna Blogger pada bingung dan protes :teriak: kenapa cara ini nggak bisa dipake di blogspot :D . Selain itu, kalau ada masalah atau error gitu, jangan tanya macem2 sama saya ya, tanya aja langsung sama yang bikin tutorial aslinya :) . Oke, yang kamu butuhkan cuma wordpress versi 2.2 sampai 2.5.

  1. Buka /wp-comments-post.php untuk diedit (jangan lupa di backup dulu).
  2. Temukan kode di bawah ini
    $comment_author       = trim(strip_tags($_POST['author']));
    $comment_author_email = trim($_POST['email']);
    $comment_author_url   = trim($_POST['url']);
    $comment_content      = trim($_POST['comment']);
  3. Tambahkan dibawahnya dengan kode berikut
    // get list of user (display) names for blog
    global $wpdb;
    $valid_users = (array)$wpdb->get_results("
      SELECT display_name, user_email FROM " . $wpdb->prefix . "users");
    
    // get ID of logged in user (if there is one)
    global $userdata;
    get_currentuserinfo();
    $logged_in_name = $userdata->ID;
    $logged_in_email = $userdata->user_email;
    
    // see if the comment author matches an existing author
    $found_match = FALSE;
    foreach ($valid_users as $va) {
      if (trim($va->display_name) != '') {
        if (strtolower($va->display_name) == strtolower($comment_author)) {
          $found_match = TRUE;
          break;
        }
      }
      if (trim($va->user_email) != '') {
    
        if (strtolower($va->user_email) == strtolower($comment_author_email)) {
          $found_match = TRUE;
          break;
        }
      }
    }
    
    // if commenter is not logged in, but match was found, block the comment
    if (trim($logged_in_name) == '') {
      if ($found_match == TRUE) {
        wp_die( __('You cannot post using the name or email of a registered author.') );
      }
    }
  4. Simpan file dan refresh browser
  5. Untuk mencoba silakan logout dari wp admin, kemudian coba posting komentar memakai nama dan/atau email kamu
  6. Tips: kamu bisa mengubah kata-kata pesan yang ditampilkan apabila komentar diposting menggunakan nama dan/atau email kamu, cukup memodifikasi line dibawah ini
    wp_die( __('You cannot post using the name or email of a registered author.') );
  7. Untuk melihat demo coba posting sebuah komentar di blog ini memakai nick saya: fanari

Oh ya satu lagi..barangkali ada yang mau nulis plugin dari trik diatas, atau mungkin udah nemuin plugin tersebut jangan lupa kasih tau saya ya, jadi kita nggak perlu repot oprek scriptnya :) .

Update: Sekarang telah tersedia plugin WP Prevent Author Impersonation dari Mas Eko. Silakan download ↓

19 thoughts on “Cara Melindungi Nama dan E-mail Penulis Pada Form Komentar

  1. bisa bener atau salah, jangan lupa kembalikan file asli wp-comments-post.php sebelum upgrade WP

  2. Pingback: Mencegah Penggunaan Nama Admin pada WordPress Comment | patembe dot com

  3. Saya hanya mem-plugin-kan saja dengan sedikit modifikasi. Itu setelah mendapat petunjuk dari Patembe, baca tulisan ini, dan sumber aslinya. Terima kasih sudah mencobanya.