Need help with a wordpress-task
I want ALL the posts from sub categories to be excluded.
Example:
- Cake
- Pie
- Apple
- Pear
- Banana
- Pie
If i post a post in Banana, i don’t want it to show up in Pie or Cake. I just want posts that are posted in banana to show in banana, not in the top categories.
How can i do this?
I found a code for it to put in functions.php but and it does the trick with the first category, but not the second.
function fb_filter_child_cats($query) {
$cat = get_term_by('name', $query->query_vars['category_name'], 'category');
$child_cats = (array) get_term_children( &$cat->term_id, 'category' );
// also possible
// $child_cats = (array) get_term_children( get_cat_id($query->query_vars['category_name']), 'category' );
if ( !$query->is_admin )
$query->set( 'category__not_in', array_merge($child_cats) );
return $query;
}
add_filter( 'pre_get_posts', 'fb_filter_child_cats' );
Don’t change your template, and please do not use
query_posts
.Add this to your
function.php
:Easiest way is by using a Category Template.
http://codex.wordpress.org/Category_Templates
Basically you want to have a category.php page, and then change
to this
and
to
I cannot test it right now, but you can try with this code:
You need to edit the template file where you want to show the posts and put this code.
you can try this, it worked for me
?>
copied from
http://www.maratz.com/blog/archives/2009/07/13/exclude-articles-from-a-category-tree-on-your-wordpress-homepage/