Как получить дочерние категории данного сообщения

как мне получить имена дочерних категорий произвольной почты?

Например, я получил категорию slug – «мотоциклы», и я получил подкатегории для этого. Поэтому мне нужно получить каждое название подкатегории, которое находится внутри категории, с помощью пробитых мотоциклов. Y2ok

Solutions Collecting From Web of "Как получить дочерние категории данного сообщения"

Чтобы получить дочерние категории данной родительской категории, используйте комбинацию get_category_by_slug() и get_categories() .

Последняя функция возвращает массив объектов категории, соответствующих указанному массиву аргументов запроса; первый будет возвращать идентификатор категории, учитывая его слизню.

Так, например:

 <?php $motorbike_child_cat_args = array( 'child_of' => get_category_by_slug( 'motorbikes' ) ); $motorbike_child_cats = get_categories( $motorbike_child_cat_args ); ?> 

Затем вы можете делать все, что хотите, с помощью объектов массива категории. Например, чтобы получить массив имен дочерних категорий:

 <?php $motorbike_child_cat_names = array(); foreach ( $motorbike_child_cats as $child_cat ) { $motorbike_child_cat_names[] = $child_cat->name; } ?> 

Действительно, то, что вы делаете с этим, зависит от вас в этот момент.

РЕДАКТИРОВАТЬ

Если вам нужно получить дочерние категории произвольной записи , вы можете использовать get_the_category() .

Если вы находитесь внутри Loop, просто назовите get_the_category() ; если вы находитесь за пределами Loop, вам необходимо передать идентификатор сообщения на вызов: get_the_category( $id ) .

Так, например, для создания массива имен дочерних категорий (независимо от родителя) текущего сообщения:

 <?php $my_post_categories = get_the_category(); $my_post_child_cats = array(); foreach ( $my_post_categories as $post_cat ) { if ( 0 != $post_cat->category_parent ) { $my_post_child_cats[] = $post_cat->cat_name; } } ?> 

Или, например, для создания массива имен дочерних категорий «мотоцикл» текущего сообщения:

 <?php $my_post_categories = get_the_category(); $motorbikes_child_cats = array(); foreach ( $my_post_categories as $post_cat ) { if ( 'motorbikes' == $post_cat->category_parent ) { $motorbikes_child_cats[] = $post_cat->cat_name; } } ?> 

Это больше того, что вы ищете?

EDIT 2

Если вам просто нужно получить все категории своего сообщения:

 <?php $all_post_categories = get_the_category(); $my_post_cats = array(); foreach ( $my_post_categories as $post_cat ) { $my_post_cats[] = $post_cat->cat_name; } ?> 

Это даст вам все категории для текущей Почты. Я не знаю, как факторы категории motorbikes влияют на этот вопрос.

 $categories = wp_get_post_categories( get_the_ID(), array('fields' => 'ids') ); $arguments = array( 'taxonomy' => 'category', 'childless' => true, 'include' => $categories, ); $selected_category = get_terms( $arguments );