I stumbled upon this when Blogulate.com’s first post was made. I didnt want the Blog Reviews to appear on the homepage.
This is actually very simple. All you have to do is modify some PHP code.
First, goto Manage > Categories and get the ID of the Category you wish to exclude. Then, go to WP admin and selet Presentation > Theme Editor ..
For your current theme, edit the loop where the posts are displayed. (It varies according to the theme… It was theloop.php for my K2 theme. )
Here is the sample from K2 Theme’s post display loop.
<?php /* Start the loop */ while ( have_posts() )
{
the_post();
?>
MODIFIED CODE :
<?php /* Start the loop */ while ( have_posts() )
{
the_post();
if (is_home()) if (in_category(’14′)) continue;
if (is_home()) if (in_category(’47′)) continue;?>
The modified code doesnt show posts that belong to Categories 14 and 47 in homepage.


Thank you so much, thinkdj! This code actually works in WP 2.3.2, whereas all the other tricks I’ve tried - those published in the codex - do not. They reordered all the posts on my home page, displaying the oldest first - not exactly what I wanted…
Thanks!
Rachel
1U’re welcome Rachel
2Hi, thinkdj,
I have a couple of questions:
1) Do you know if there’s a way to only include posts if they have categories in addition to the excluded one(s)?
2) How do I exclude the posts from my “Recent Posts” list on the sidebar? (I am using the My_Link widget for that, see this page for more info on that).
Thanks so much!
Rachel
3Hi, thinkdj,
I think I might’ve found a solution for #2:
http://blue-anvil.com/archives/create-a-wordpress-recent-posts-widget
Thanks!
Rachel
4Hi,
I’ve tried every which way and it won’t work for me.
Here’s what I did:
5Thanks for the tip. I was looking for a plugin to do the job, but now seems it’s easier to just hack the index.php file. Quicker and cleaner.
6Do you know how this would work for Wordpress 2.5.1, in my K2 theloop.php I have
and so have made it
to no avail….
I have tried countless plug-ins, hacks and code but yours is the only site actually implementing it, I’d be very grateful for any help.
Cheers, Emma
7Rachel, this worked for me:
cat_ID == ‘12′) continue;
} ?>
The result is that any posts that have only category 12 will be ignored.
8Trying again:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ? >
9<?php if (is_home()) {
$categories = get_the_category();
if (count($categories) == 1 && $categories[0]->cat_ID == ‘12′) continue;
} ?>
Thanks, Rafael! I’ll try that…
10Although it’d work skipping the unwanted category but it will not change the number of “Previous Post” pagination at the bottom.
Have any idea how to modify that?
11