Получить только категории верхнего уровня, используя get_categories () без цикла foreach

Очень простой вопрос: Вот мой get_categories() :

 <?php $args = array( 'show_option_all' => '', 'show_option_none' => '', 'orderby' => 'ID', 'order' => 'ASC', 'show_count' => 0, 'hide_empty' => 0, 'exclude' => '1', 'hierarchical' => 0, 'depth' => 1, 'number' => 12 ); ?> <?php $categories = get_categories( $args ); ?> <div class="middle-left"> <ul> <?php for( $i=0; $i<4; $i++ ) { echo "<li>" . $categories[$i]->{'name'} . "</li>"; } ?> </ul> </div> <div class="middle-middle"> <ul> <?php for( $i=4; $i<8; $i++ ) { echo "<li>" . $categories[$i]->{'name'} . "</li>"; } ?> </ul> </div> <div class="middle-right"> <ul> <?php for( $i=8; $i<12; $i++ ) { echo "<li>" . $categories[$i]->{'name'} . "</li>"; } ?> </ul> </div> 

После долгого поиска я получил способ войти в объект stdClass без цикла foreach, и я хочу продолжить этот путь. Но я хочу только категории верхнего уровня, никаких подкатов.

Как изменить аргумент здесь?

Solutions Collecting From Web of "Получить только категории верхнего уровня, используя get_categories () без цикла foreach"

Используйте get_terms с parent аргументом. На странице Codex для этой функции основное внимание уделяется:

parent (integer) Получить прямые дочерние элементы этого термина (только термины, чей явный родитель это значение). Если 0 передано, возвращаются только члены верхнего уровня. По умолчанию используется пустая строка.

Непроверенный, но это должно сделать это.

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

Конечно, вам нужно добавить любые другие аргументы, которые вам нужны.

установить parent 0

 $args = array( 'parent' => 0, 'hide_empty' => 0 );