Running a open source CMS like WordPress on your own LAMP server is supposed to give you the freedom to develop a better system than you would get from pre-packaged blogging services. Yet a lot of WordPress users effectively outsource their site's discussions by installing closed commenting systems like Disqus or IntenseDebate. In addition to handing someone else the keys to your community interaction, these third-party services can also be slow to load and respond to updates. Let's look at the open source alternatives.
Naturally, there is as much variety in what constitutes a "good" discussion set-up as there are blogs on the web. I'm going to take it for granted that some core features — such as CAPTCHAs, enabling OpenID logins or showing Gravatar images — are so obvious that they require no introduction. And on the other end of the spectrum, there are discussion features whose value hinges entirely on what type of site you run.
An example of this might be comment rating systems. There are plenty of plug-ins that implement this (in plenty of different ways), but it is primarily useful if your site is "help" or "resource"-oriented — i.e., where enough debate traffic collects that users need to sort through it somehow just to get the value out. Collecting ratings that just show "I agree" versus "I disagree" are good for user vanity, but don't really enhance the functionality of the site.
Instead, we're just going to look at plug-ins that add functionality and usability to the discussion itself. Not visual bling, just an improved experience for your readers, that will encourage them to come back and participate. Since five is an arbitrary number, there is plenty of room for disagreement. Feel free to have your say in the comment section.
You Can Quote Me On That
Full-blown discussion forum software has long shipped with an easy "Quote this" function built right in the reply editor. It helps tie related comments together when newcomers join the conversation, and prevents misunderstandings by ensuring that the follow-up comment is linked to the right portion of the original comment.
To recreate this ability in WordPress comments, try the Quote Comments plug-in. It is a lightweight plug-in that adds a "Quote this" icon to each comment box. Clicking on it loads the comment into a
blockquote element in the comment editor. The look and placement of the "Quote this" icon is completely configurable, and the plugin even works with the popular WYSIWYG comment editor MCEComments.
At Your Service
Along those same lines, the Reply To plugin (also seen in some places under the name "@ Reply") enables your commenters to specify who they are addressing follow-up messages to, via the @ character syntax you see on Twitter and related microblogging services. This also keeps the discussion streamlined and helps keep follow-ups from getting tangled. Naturally, trolls can abuse this service to grab attention, but that is ultimately a policy problem your administrators and moderators will need to take care of.
Reply To has no special configuration, however the "Reply" button is designed to pop up when visitors mouse-over a particular comment. You can alter this behavior to display the button all the time (which may improve usability).
The third piece of the "keep discussions organized" puzzle is threaded comment display. That is, indicating which comments were posted in response to other comments by indentation and theming cues. There are literally dozens of comment-threading plugins, each with its own peculiarities. My pick goes to Greg's Threaded Comment Numbering for one feature that no competing plugin has matched: numbering individual comments, while preserving structure.
Greg's numbers use what those of us in the software world recognize as point-numbering. Top-level comments are numbered sequentially (1, 2, 3), and replies to each top-level comment are numbered after the decimal point (1.1, 1.2, 2.1, etc). Replies are indented. As administrator, you have control over how many levels deep the indentation can run, as well as the depth of the comment numbering scheme. Trackback and pingback links are also handled.
One caveat that goes with every comment indentation plugin is that fixed-width Wordpress themes tend to become unreadable after just two or three indentations, with skinnier and skinnier columns devoted to actual text. If you find yourself in that uncomfortable situation, that is entirely the fault of the theme author for picking an anachronistically-thin column width. Well, it is also your fault for not picking a fluid-layout theme, but who's perfect?
The Subscribe to Comments Reloaded plugin adds one simple feature to the discussion system: a way for commenters to receive email notification of follow-up messages. WordPress has a built-in feature to notify the author of a post (e.g., you) whenever someone posts a comment, but it takes an add-on to notify commenters — even if those commenters are registered users.
This plugin is a remake of an older, abandoned plugin, but it adds some new features in addition to supporting the latest WordPress builds. You can completely customize the email notification template, customize the appearance of the "subscribe" box, and disable subscriptions for particular posts and pages. There is support for a "my subscriptions" page for use by your users, and the plugin is explicitly compatible with some other plugins that might come in handy, such as the qTranslate translator. Users of the older "Subscribe to Comments" plugin will be happy to hear you can import your old settings with the new plugin, thus preserving your users' subscriptions.
The Mod Squad
Last but certainly not least, if you enable WordPress's comment moderation system (and if you don't, you should...) you are already aware that the admin panel's Discussion Settings screen offers an option to send an email whenever a comment is flagged for moderation. What it does not say is that this "comment awaiting moderation" email goes only to the Site Administrator email address. If you are a one-blogger shop, that's you, but if you run a blog for multiple people, you quickly discover that this option causes confusion. The setting directly above allows you to send an email to the post author whenever a new comment is added, but it does not send an email to the author when moderation is needed.
In most cases, post authors (and not WordPress admins) need to worry about moderation, so this divided email-notification setting gets in both parties' ways. Enter the Comment Moderation Email To Post Author plugin. It's not the catchiest of names, but it does want you want it to: it pings the author of the post whenever a comment needs moderation, and leaves the site admin alone. The result is quicker moderation, and a more freely flowing discussion.
As I said at the beginning of this list, there is plenty of room to disagree over what features make for the most useful discussion system. But these five plugins all grease the wheels of meaningful commenting. Your users may find your site more attractive if you offer personalized "profile" pages for registered users, but that's an add-on dimension outside of the actual discussion process. Still, if I had to expand the list, I could.
For instance, I would probably include plugins designed to highlight posts by the author in a different color — such as Highlight Author Comments. That feature can help readers get the final word on a long-debated question, as well as prevent mischief-makers from confusing readers by posting under a name similar to the author's. Or possibly an AJAX comment "previewer;" if you keep adding functionality to the comment system (as the Quote Comments and Reply To plugins do), you run the risk of tacking on so much HTML that the layout is hard to visualize. Offering a nice preview function can help your commenters avoid accidents.
Still, both of those features kind of fall into the "visual feature" category, rather than directly affecting the flow of conversation, so I relegated them to the afterthought section. But now you can have your say: what WordPress plugins have you found that actually enable smoother and better discussion from your readers? You know what to do: leave a comment.