Anne van Kesteren

Quality comments

Somehow I managed not to get spam and get relevant comments on most topics. Although WordPress is obviously a great tool some people will still get spam with it. Simply because it's used on a lot of weblogs and every weblog uses the same kind of structure. Besides the fact that some people are braindead and will actually make spam comments personally instead of using some bot to spam a list of WordPress sites.

Fortunately, my commenting system deals with both. Braindead people can't comment since they most likely are not aware nor able to deal with my comment validator. (Thanks to Mark for hacking it into WordPress and thanks to Simon for creating the class.) I guess spam bots can't really deal with the forced comment preview feature on this site, though I'm not entirely sure about that. (Of course, they will have problems with validation as well.)

A benefit of having comment validation on this weblog is that people who are clueless can't comment. This will give me relevant comments, though I must admit there are edge cases. If you want easy comment validation as in not hacked into WordPress, please visit the src directory on greek2me.

Of course, comment validation sucks for a regular weblog.


  1. Thank you for pointing your readers to the plugin I provide. This is basically the same code that Mark wrote, with just a few changes/updates/fixes by me. :-)

    Posted by Ben at

  2. Damn, I was caught... ^____^


    Posted by Laurens Holst at

  3. Nice take at valid comments. However, don't you think it will reduce the number of comments you get, as you'll expect everyone who comments to know what a "block level element" is? Or maybe on your blog, you'd rather not get comments from people who don't know what that means?

    Posted by Rakesh Pai at

  4. Spot on, Anne!

    The crappiest commenting system I have ever seen is Blogger's. I mean, you can barely use any semantic elements! What is so wrong with code?

    Anyway, I still love your commenting system, and I wish I had something similar. Maybe one day...

    Just one thing: when are you going to add <span xml:lang=""/> (with xml:lang being a required attribute on span)?

    Posted by Charl van Niekerk at

  5. Rakesh Pai, that last sentence is correct ;-)

    Posted by Anne at

  6. I'm just trying to spam

    Posted by Axel at

  7. Great! I've always wondered how you came up with this whole system. The only downside is hardly anyone posts comments on my site, such as it is, heh.
    Hopefully that will change soon, or not...

    Posted by Vidar at

  8. I tried Ben's original comment preview plugin (rc1) but was unhappy with it and made a few changes (still testing them out). I run comments through the normal WP comment filters first (attempting to fix/auto-format the comments), then pass the result to Simon's class. If the result is invalid XML, Simon's class outputs an error. If the result is valid, I serialize/encode the original post and put it in a hidden form element on the forced preview page, and output the filtered result on the page for the user to see. Finally the WP post page unserializes/unencodes the hidden form element and rechecks it via Simon's class (to prevent automated posts bypassing the preview). I store the original comment in the DB because WP runs it through filters during output later on.

    So my version (hopefully):

    1. lets normal users post plain text (automatically creating paragraphs and line breaks)
    2. lets experienced users post html (although the WP filters may change it during auto-formating/fixing)
    3. prevents invalid XML from ever being stored/displayed (I serve application/xhtml+xml)
    4. forces a comment preview and prevents automated spamming
    5. stores the original comment in the DB as WP normally would (just in case I ever decide to remove this plugin)
    6. allows me to do all this without having to moderate comments

    As I said, I don't know if this works yet. I'm hoping a future version of WP does all this for me without having to hack the code.

    Posted by John Serris at

  9. I like this idea-- it serves the same purpose as those image-based CAPTCHAs, but without the hassle of trying to read those blasted illegible numbers with poor eyesight.

    (I was tripped up because I originally used <acronym/>, incidentally... even valid XHTML isn't enough sometimes!)

    Posted by codeman38 at