Exclude Subcategories by Parent id/name
-
I need to exclude all the subcategories + the parent category by only giving the parent category id/name, (in the functions.php file). This is I’ve tried so far:
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' ); if ( !$query->is_admin ) $query->set( 'category__not_in', array_merge($child_cats) ); return $query; } add_filter( 'pre_get_posts', 'fb_filter_child_cats' );
and this:
function exclude_category($query) { $child_cats = (array) get_term_children('20', 'category'); $child_cats = (array) get_categories('child_of=10') if ( $query->is_home ) { $query->set('category__not_in',array_merge(array('20'), $child_cats)); return $query; } } add_filter('pre_get_posts', 'exclude_category');
and this:
if ( !function_exists('fb_filter_child_cats') ) { function fb_filter_child_cats( $cats ) { global $wp_query, $wpdb; if ( is_category() ) { // get children ID's if ( $excludes = get_categories( "child_of=" . $wp_query->get('cat') ) ) { // set array with ID's foreach ( $excludes as $key => $value ) { $exclude[] = $value->cat_ID; } } // remove child cats if ( isset($exclude) && is_array($exclude) ) { $cats .= " AND " . $wpdb->prefix . "term_taxonomy.term_id NOT IN (" . implode(",", $exclude) . ") "; } } return $cats; } if ( !is_admin() ) { add_filter( 'posts_where', 'fb_filter_child_cats' ); } }
but nothing seems to work.
Viewing 4 replies - 1 through 4 (of 4 total)
Viewing 4 replies - 1 through 4 (of 4 total)
- The topic ‘Exclude Subcategories by Parent id/name’ is closed to new replies.