Como obter categorias de crianças de um determinado Post

Como faço para obter nomes de categorias infantis de um Post arbitrário?

Por exemplo, eu tenho slug de categoria – “motos” e recebi subcategorias para isso. Então eu preciso obter cada subcategoria de posts que seja dentro da categoria com motocicletas de slug. Y2ok

Solutions Collecting From Web of "Como obter categorias de crianças de um determinado Post"

Para obter as categorias de filhos de uma determinada lesão da categoria pai, use uma combinação de get_category_by_slug() e get_categories() .

A última function retornará uma matriz de objects de categoria que correspondem à matriz de argumentos de consulta especificada; o primeiro retornará a identificação de uma categoria, dada a sua lesma.

Então, por exemplo:

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

Então, você pode fazer o que quiser com seu array-of-category-objects. Por exemplo, para obter uma série de nomes de categorias filho:

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

Realmente, o que você faz com isso depende de você nesse ponto.

EDITAR

Se você precisa obter categorias filho de uma postagem arbitrária , então você pode usar get_the_category() .

Se você estiver dentro do Loop, basta chamar get_the_category() ; Se você estiver fora do Loop, então você precisa passar o Post ID para a chamada: get_the_category( $id ) .

Então, por exemplo, para criar uma série de nomes de categorias filho (independentemente do pai) da postagem atual:

 < ?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; } } ?> 

Ou, por exemplo, para criar uma série de nomes de categorias infantis “moto” da publicação atual:

 < ?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; } } ?> 

Isso é mais o que você está procurando?

EDITAR 2

Se você precisa apenas obter todas as categorias da sua postagem:

 < ?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; } ?> 

Isso lhe dará todas as categorias para o Post atual. Não tenho ideia de como os fatores de slug da categoria de motorbikes são nesta questão.

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