I would suggest something like this: function exclude_widget_subcategories($args){ $all_categories = get_terms(‘category’, array(‘parent’ => 0, ‘fields’ => ‘ids’)); $exclude_categories = array(); foreach($all_categories as $category_id){ $children = get_term_children($category_id, ‘category’); if(count($children)!=0){ $exclude_categories[] = $category_id; } } $exclude = implode(“,”,$exclude_categories); // The IDs of the excluding categories $args[“exclude”] = $exclude; return $args; } add_filter(“widget_categories_args”,”exclude_widget_subcategories”); get_terms(‘category’, array(‘parent’ => 0, ‘fields’ … Read more