Welcome to Dagon Design. In addition to free scripts, WordPress plugins, and articles, we offer a variety of services including custom theme design, plugin creation, and PHP scripting. Contact me for more information.

Updated Friday, February 20th, 2009 at 8:20pm

Prevent author impersonation in WordPress comments

This modification to WordPress prevents unregistered comment authors from using the names or email addresses of the registered authors on your site. It does this by first checking to see if the comment author is logged in. If they are not, it compares their name and email address to the registered author data. If there is a match, the comment is blocked and a custom message is displayed. The name and email address comparison is case-insensitive.

Requirements

This code modification has been tested in WordPress 2.2 through 2.8+

Instructions

1) Open /wp-comments-post.php for editing (backup the file first!)

2) Find the following block of code:

Notice: In WordPress 2.8, the code has changed a bit, but should be easy to find near the top of the page.

$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) After it, add the following:

// 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) Save and close the file

Notes

To test this modification, simply log out and try to post a comment using the name that displays when you regularly post comments (when you are logged in).

If you would like to change the message, just modify this line:

wp_die( __('You cannot post using the name or email of a registered author.') );

  If you have found this page useful, please consider donating. Thanks!

Pages: [6] 5 4 3 2 1 » Show All

  1. I highly recommend Dagon Design’s Multi Column links. Check out how it looks on my site.LV

  2. it’s easy plugin to use and very useful for people who use wordpress as their platform. bravo for dagon design COACH

  3. I have been very optimistic about you, I think you can certainly make some big business. Just do you good. Believe me. Handbags

  4. It is well known that unity is strength, a chopstick is very fragile, ten chopsticks hard reality, not so fast can be broken. So, no matter how many contradictions, we should be united together, is not it, Oh, I hope to peaceful coexistence. Handbags

  5. Coach is a leading American designer fydf

  6. Coach is a leading American designer

  7. him realize that its his calling to reach out to them and share his skills and knowledge to turn them into better persons and athletes.European Championship qualifying, group A has a competition at home.

  8. i liked it .thanks for shairing.

  9. Hey, very intrusting and informative Video .it is realy useful of my side . i liked it .thanks for shairing.

  10. I usually find great deals on ebay and with ma

  11. bottleless water coolers I will watch this on youtube later when I am done with my work even it has low video quality

  12. Hey, very intrusting and informative Video .it is realy useful of my side . i liked it .thanks for shairing.

  13. wished to write in my site something like that.

Pages: [6] 5 4 3 2 1 » Show All

Leave a Comment

Before you comment: If you are having an issue with a script, please make sure you have read the entire article. Also, please read through the comments because most common issues have already been discussed many times. Thanks.


Be sure to wrap all code in <code></code> tags.