Receba os filhos da categoria pai
4 respostas
- votos
-
- 2012-11-29
Vocênãopode simplesmentepassar a string "pai"para
get_categories
>. Vocêtem quepassar o ID dopai.$categories=get_categories( array( 'parent' => $cat->cat_ID ) );
Observe queexistem dois parâmetros semelhantes,masnãoiguais "obterfilho" que vocêpode usar .
.
child_of (INTEGER) Exibetodas as categorias que são descendentes (isto é,crianças & amp;netos) da categoriaidentificadapelo seu ID. Lá não hápadrãoparaesteparâmetro. Se oparâmetrofor usado,o Oparâmetro Hide_empty é definido comofalso.
pai (INTEGER) Exibe apenas categorias que são descendentes diretas (isto é,somente crianças) da categoriaidentificadapelo seu ID. Issofaz Nãofunciona como oparâmetro 'child_of'. Não hápadrãoparaeste parâmetro. [Em 2.8.4]
Agora vocêprecisafazer loop sobre o
$categories
. Vocênãopode simplesmenteecoar umamatriz.foreach ($categories as $c) { var_dump($c); // what you really want instead of var_dump is something to // to create markup-- list items maybe, For example... echo '<li>'.$c->cat_name.'</li>'; }
You can't just pass the string "parent" to
get_categories
. You have to pass the ID of the parent.$categories=get_categories( array( 'parent' => $cat->cat_ID ) );
Notice that there are two similar but not equal "get child" parameters that you can use.
child_of (integer) Display all categories that are descendants (i.e. children & grandchildren) of the category identified by its ID. There is no default for this parameter. If the parameter is used, the hide_empty parameter is set to false.
parent (integer) Display only categories that are direct descendants (i.e. children only) of the category identified by its ID. This does NOT work like the 'child_of' parameter. There is no default for this parameter. [In 2.8.4]
Now you need to loop over the
$categories
. You can't just echo an array.foreach ($categories as $c) { var_dump($c); // what you really want instead of var_dump is something to // to create markup-- list items maybe, For example... echo '<li>'.$c->cat_name.'</li>'; }
-
Infelizmente,isso é apenasme dar uma saída dematriz.Nenhum valoresestão sendopuxados.Unfortunately, that is just giving me an output of Array. No values are being pulled in.
- 0
- 2012-11-29
- Chris Da Sie
-
'Array' é o que acontece quando vocêtentaecoar umamatriz.Vocêprecisa ligar amatrize ecoar oselementosindividuais.'Array' is what happens when you try to echo an array. You need to loop over the array and echo the individual elements.
- 0
- 2012-11-29
- s_ha_dum
-
Vocêpode querer adicionar 'hide_empty'=>false.Paramostrartambém categorias vazias.You might want to add 'hide_empty' => false. To also show empty categories.
- 2
- 2018-06-18
- Floris
-
- 2018-04-25
Use o código abaixono arquivo Archive.php. Este códigoirá ajudá-lo:
<?php $term = get_queried_object(); $children = get_terms( $term->taxonomy, array( 'parent' => $term->term_id, 'hide_empty' => false ) ); if ( $children ) { foreach( $children as $subcat ) { echo '<li><a href="' . esc_url(get_term_link($subcat, $subcat->taxonomy)) . '">' . $subcat->name . '</a></li>'; } } ?>
Use the code below in your archive.php file. This code will help you:
<?php $term = get_queried_object(); $children = get_terms( $term->taxonomy, array( 'parent' => $term->term_id, 'hide_empty' => false ) ); if ( $children ) { foreach( $children as $subcat ) { echo '<li><a href="' . esc_url(get_term_link($subcat, $subcat->taxonomy)) . '">' . $subcat->name . '</a></li>'; } } ?>
-
Porfavor ** [editar] sua resposta **e adicione umaexplicação: ** Por que **poderia resolver oproblema?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-04-25
- fuxia
-
- 2019-12-22
Senão houver valoresnamatriz,poderátentar a seguinte abordagem:
$last_categories = get_categories( array( 'taxonomy' => 'product_cat', 'parent' => $sub_category->cat_ID ) );
If there are no values in the array you can try the following approach:
$last_categories = get_categories( array( 'taxonomy' => 'product_cat', 'parent' => $sub_category->cat_ID ) );
-
- 2020-03-02
Para obter categorias de crianças,vocêpode usar o seguinte código.
$category = get_queried_object(); // this is for getting the parent category on archive or any place the category object is called. $categories=get_categories( array( 'parent' => $category->term_id, 'hide_empty' => false ) );
AVISO: - Eu usei 'Hide_empty'=> Falsoparamostrar categorias semnenhumpostagem sobele. Em seguida,use amatriz de $ Categoryto loope faça suamarcação.
To get child categories you can use following code.
$category = get_queried_object(); // this is for getting the parent category on archive or any place the category object is called. $categories=get_categories( array( 'parent' => $category->term_id, 'hide_empty' => false ) );
Notice :- I have used 'hide_empty' => false to show categories with no any posts under it. Then use the $categories array to loop and make your markup.
Estoutentando obtertodas as categorias de criançasparaexibirneste loop,masestou lutando com o código.Isso é o queeutenho até agora.
Qualquer ajuda seria ótima