WordPress plugin idea : relevant tag cloud

Once in a while, especially when trying to explain a widely used technology to a non-technical person, I get this feeling that things could be done better.  And that’s exactly what happened recently while I was explaining tag clouds.

I know that there are plenty of variations on displaying and generating tag clouds – most used, most popular, recent, etc, etc, etc.  But what I realized is that a relevant tag cloud plugin is missing in WordPress.  Or, at least, is hard to find.

Many WordPress blogs these days are serving a particular niche, covering a specific topic. So, for them relevant tag clouds are not a  problem.  All tags are relevant, since they all share the same topic.  However, there are plenty of blogs which cover a wide variety of topics.

Take my blog for example.  I write about technology (tools, concepts, trends, etc.), movies, Cyprus, personal life, and lots of random bits about this and that.  I tag all my posts.  But the tag cloud is totally useless, because it shows all tags from all my posts.  And what good are the technology tags for the reader who scrolls through movie posts?

So, I think there is a need for a relevant tag cloud plugin.  I don’t know exactly how it should work and if it will work at all, but my ideas are the following:

  • When on the front page of the blog (is_home()), tag cloud can show anything at all – most used, most recent, most popular, etc.
  • When in the post or page (is_page() or is_post()), tag cloud should display tags which are used in all posts, that share tags with the current one.
  • When in the category (is_category()), tag cloud should display all tags which are used in all posts that belong to this category.
  • When in the archives (is_archive()), tag cloud should display all tags which are used in all posts within the archive time period.
  • When in search results (is_search()), search term should be checked against existing tags, and if found ,then show all tags used in all posts tagged by the search term.  Alternatively, maybe, show a tag cloud for all tags used in the posts matching the search criteria.

I think such a tag cloud would be way more useful, especially for blogs that cover multiple topics.  Especially, if the extra database load caused by generating such a tag cloud could be kept under control.

What do you think?  Is it going to work?  Is there something that I missed here?  Is there are a plugin that can do this?  Would you jump in and implement it or should I do everything myself?