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.
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
U're welcome 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
Hi, thinkdj,
I think I might've found a solution for #2:
http://blue-anvil.com/archives/create-a-wordpress…
🙂
Thanks!
Rachel
Hi,
I've tried every which way and it won't work for me.
Here's what I did:
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. 🙂
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 🙂
Rachel, this worked for me:
cat_ID == '12') continue;
} ?>
The result is that any posts that have only category 12 will be ignored.
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;
} ?>
What is I have to exclude more than 1 category & that too by name ?? I tried this to exclude 1 category :
cat_name == 'Videos') continue;
} ?>
But what for excluding more than 1 categories??
Thanks, Rafael! I'll try that…
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?
Hey,
I don't know if it is still usefull for you or that it is just a feature of the TMA theme, but with the code beneath the two categories Asides and Featured are removed from the resulting list.
<code>
get_var("SELECT term_ID FROM $wpdb->terms WHERE name='Asides'"); ?>
get_var("SELECT term_ID FROM $wpdb->terms WHERE name='Featured'"); ?>
<?php $the_query = new WP_Query('cat=-' .$catid. ',-' .$catid2. '&showposts=1&orderby=post_date&order=desc');</code>
To exclude a category from the loop on the front page, find this code:
and change it to this:
This will exclude posts in category number four from being displayed on the front page.
Excelent… simple and efective. Thank you thinkdj
why not just use these plugins, find them in google by typing: "wordpress exclude category plugin"
Organised by Management Forum. ,
It would be condemnable on consequentialist grounds, if there are feasible alternative arrangements that would bring about more mixing of people, a better fit of complementary types in productive schemes of cooperation, and better outcomes for people according to the right standard for assessing outcomes. ,
how about in archive? how can i hide the selected category?
Cool, thanks! Exactly what I needed.
Fantastic information in your post, I saw this report on television yesterday about this same thing and since I am getting married in two weeks and the timing could not have been better! thanks for the info!, I have bookmarked, thanks Rayford Mahler
Wish you Happy Married Life, Rayford 🙂
Worked like a charm on my site Best Date Night Ideas! This solution did exactly what I wanted it to. Thanks a ton for posting this.
correction – I used a different solution, but this one should also work. Thanks.
We enjoy this site given and it has presented me several sort of inspiration to have success for some good reason, so thank you.
Thx! Work great!
The easier way to accomplish the same thing is to use this plugin.
http://ryowebsite.com/wp-plugins/category-visibil…
This allows MUCH more flexibility in where your posts are shown.
At least in the current version of WordPress, you can use the category name instead of the number, e.g.:
<code>if (is_home()) if (in_category('uncategorized')) continue;</code>
Also, if you copy and paste the code in the original post, be sure you change the curly back-ticks to regular straight single quotes, or it won't work.
I know this is genuinely boring and you are skipping to the next comment, but I just wanted to throw you a big thanks – you cleared up some things for me!
There is a problem with this, let's say the homepage is supposed to show 10 posts, if 5 of those are in the excluded category the homepage will only show 5 where as the expected behaviour is to continue getting more posts until 10 non-category posts can be shown. How can this be accomplished?
In that case, set it at "show 15 posts" in the admin… yes/no?
No, for two reasons:
1) That requires a manual change, if the number changes tomorrow i don't want to have to change the number of posts the frontpage shows
2) What if in the next 5 posts (after changing to 15) 2 are in the excluded category? Now I have to change it to 17 posts or whatever, and what if one of those is in excluded cat? Now try 18 and see if that works, etc you see my point 🙂
Found an excellent plugin called Category Visibility to help with this.
Thanks for the help!
Nevermind category visibility seems to have a bug where it stop the tag archives from working, at least on my theme 😉
Try this one:
http://wordpress.org/extend/plugins/advanced-cate…
I used this code. it is actually good. But it does not effect the subcategories of a category.
juste put this : &exclude=5 (5 is the ID of the category what we want to exclude)
Exemple : wp_list_categories('title_li=&exclude=5&orderby=id');
Oh,got it,3x for sharing. .http://www.deuggstiefel.com/
that's ok