Exclude categories from wordpress frontpage

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.



Search the Web with Google

13 Responses to “Exclude categories from wordpress frontpage”


  1. 1 Rachel

    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

    1
  2. 2 thinkdj

    U’re welcome Rachel :)

    2
  3. 3 Rachel

    Hi, 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

    3
  4. 4 Rachel

    Hi, thinkdj,

    I think I might’ve found a solution for #2:

    http://blue-anvil.com/archives/create-a-wordpress-recent-posts-widget

    :-)

    Thanks!

    Rachel

    4
  5. 5 stim

    Hi,

    I’ve tried every which way and it won’t work for me.

    Here’s what I did:

    5
  6. 6 Jasmine

    Thanks 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. :)

    6
  7. 7 pixie

    Do 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 :-)

    7
  8. 8 Rafael Chaves

    Rachel, this worked for me:

    cat_ID == ‘12′) continue;
    } ?>

    The result is that any posts that have only category 12 will be ignored.

    8
  9. 9 Rafael Chaves

    Trying again:

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ? >
    <?php if (is_home()) {
    $categories = get_the_category();
    if (count($categories) == 1 && $categories[0]->cat_ID == ‘12′) continue;
    } ?>

    9
  10. 10 Rachel Buddeberg

    Thanks, Rafael! I’ll try that…

    10
  11. 11 Fendy Ahmad

    Although 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
  1. 1 jasonlittle.ca » How to Exclude Category Posts from your Wordpress Homepage
  2. 2 How to be exclusive | Code and Cappuccino

Leave a Reply





Clicky