Get only the top level categories using get_categories() without foreach loop

Use get_terms with a parent argument. From the Codex page for that function, emphasis mine:

parent
(integer) Get direct children of this term (only terms whose explicit parent is this value). If 0 is passed, only top-level terms are returned. Default is an empty string.

Untested, but this should do it.

$categories = get_terms( 
   'category', 
   array('parent' => 0)
);

Of course, you need to add any other arguments you require.

Leave a Comment