Many of you might have noticed in our Daily Downloads today that WordPress 2.3 has been released. One of its most acclaimed features is the built-in tagging system, but to be honest it is a overly simple as it currently stands. It has no sort of near-duplicate detection when adding tags to your posts, which can quickly create a huge mess for anyone with a few dozen tags. In no time you could have tags such as “download” and “downloads” created all because you couldn’t remember which one you originally started with.




To solve that problem we were able to take the Click Tags plugin, and derive our own from it called Recommended Tags. It uses what I consider to be an intelligent system to recommend tags to you based upon the content of each article, and in the event that a specific tag is not recommended there is always a full list of all existing tags towards the bottom of the “Write a Post” page (as seen in the screenshot below). I setup options in the code so that you can easily enable or disable the displaying of both recommended tags and the entire list of tags.

How are the recommendations “intelligent?” For starters all HTML tags are stripped from the post so that linking to a Wikipedia article won’t necessarily recommend the “Wikipedia” tag that you’ve created (since URL’s are removed before matching up tags). Take a look at an additional two features (both enabled by default) that will help match tags:

  • Tags can be “exploded” so that the tag name is broken up into individual words. This will let a tag called “Windows Vista” be recommended even if you only mention “Vista” (note that it is without the “Windows”) in your article.
  • Common plural/past endings (in English) can be trimmed off of the end of tag names. That way a tag called “downloads” will still be recommended even if you only mention “download” in the article.

We will continue to add more features to make adding WordPress 2.3 tags even easier, so keep your eyes peeled for updates to Recommended Tags plugin!

Here’s a screenshot of the plugin in-action: