Wordpress Toggle Category widget set
Toggle Categories v0.3
Description I have a Chatter category on my tech blog that's really just for my own notes-to-self. And sometimes I want to see it, sometimes I don't. And I certainly don't want first-time visitors to have to see it.
The solution I came up with was to provide a persistent toggle that would turn on/off the Chatter content. It starts "off", but any blog visitor can toggle it at any time. See it in action on my tech blog.
I've packaged the functionality into a set of Wordpress widgets, available for download here as a plugin. There are three widgets in the plugin: the toggle itself, and two widgets that reflect the toggle state, a category list and a list of recent posts.
Current status
- The plugin contains a hardcoded setting for the category number (2). You'll have to edit the plugin directly until I add widget settings.
 - The plugin contains hardcoded text for the toggle ("Include chatter"). You'll have to edit the plugin directly until I add widget settings.
 - The plugin contains a hardcoded path to the plugins directory (/wp-content/plugins). Edit as needed until I update.
 - The plugin helper contains a hardcoded URL for the cookie (news.thedigitalmachine.com). Edit as needed until I can figure out an easier way.
 - I have some CSS markup cleanup to do in the plugin. You can do it yourself if you're faster than me. :>
 - You will want to modify your theme's index.php file to reflect the toggle's state. This is easy, and covered in the instructions.
 
Instructions
- Download the plugin and extract the files into your plugins directory.
 - Go to your Plugins page and activate the Toggle Chatter plugin.
 - Go to your Design -> Widgets page and add the widgets to your sidebar.
 - Update your theme's index.php file as follows. Right before the loop, add this block of code (changing the category number as needed):
 
<?php 
$include_chatter = $_COOKIE['chatter'];
if (is_home()) 
{ 
    if($include_chatter != 'yes') 
    {
        query_posts($query_string . "&cat=-2"); 
    }
} 
?>