Получить условия второго уровня пользовательской таксономии

Я хочу получить условия второго уровня определенного родительского (первого уровня) термина в пользовательской таксономии. Звучит сложно, но будет полезно.

Term 1 SubTerm-1.1 SubTerm-1.2 SubTerm-1.2.1 Term 2 SubTerm-2.1 

Скажем, если SubTerm->parent является идентификатором Term 1, тогда я хочу вывести SubTerm 1.1 и 1.2, но не 1.2.1.

wp_list_categories(array('depth' => 2, 'taxonomy' => 'customtax')); я не ищу, поскольку он перечисляет термины со своими ссылками, чего я не хочу, и опция фильтрации SubTerm->parent .

Итак, любая идея?

Solutions Collecting From Web of "Получить условия второго уровня пользовательской таксономии"

Вы можете использовать array_filter PHP для обработки результатов функции запроса таксономии, которая возвращает свои результаты, а затем отображает их. Что-то вроде:

 # This returns the whole taxonomy... $whole_tax = get_terms('customtax', array('hide_empty' => 0)); $second_level = array_filter($whole_tax, function ($t) { # This term has a parent, but its parent does not. return $t->parent != 0 && get_term($t->parent, 'customtax')->parent == 0; }); 

На этом этапе вы можете отобразить $second_level для вывода в любом формате.

NB. Если это часто используется на занятой стороне, следует избегать всех этих дополнительных вызовов get_term , читая из массива $whole_tax предполагая утверждение документации, что get_term всегда попадает в базу данных при передаче идентификатора.

 $tax ='taxonomy'; $args = array( 'taxonomy' => $tax, 'hide_empty' => false, 'parent' => 0, ); $toplv_term_query = new WP_Term_Query($args); foreach($toplv_term_query->get_terms() as $toplv_term){ $args = array( 'taxonomy' => $tax, 'hide_empty' => false, 'parent' => $toplv_term->term_id, ); $secondlv_term_query = new WP_Term_Query($args); foreach($secondlv_term_query->get_terms() as $secondlv_term){ $secondlv_term->term_id; } }