Получить дочерние элементы родительской категории
4 ответ
- голосов
-
- 2012-11-29
Вы не можете просто передать строку "parent" в
get_categories
а>. Вы должны передать идентификатор родителя.$categories=get_categories( array( 'parent' => $cat->cat_ID ) );
Обратите внимание,что есть два похожих,но не равных параметров "получить дочерний" ,которые вы можете использовать. .
<цитата>child_of (целое число) Показать все категории,являющиеся потомками (т. е. дочерние элементы и внуки) категории,определенной по ее идентификатору. Там не является значением по умолчанию для этого параметра. Если параметр используется, Параметр hide_empty имеет значениеfalse.
родитель (целое число) Отображать только категории,которые являются прямыми потомками (т. е. только дочерними) категории,определенной по ее идентификатору. Это делает НЕ работает как параметр child_of. Для этого нет значения по умолчанию параметр. [В 2.8.4]
Теперь вам нужно перебрать
$categories
. Вы не можете просто отобразить массив.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>'; }
-
К сожалению,это всего лишь вывод Array.Никакие ценности не втягиваются.Unfortunately, that is just giving me an output of Array. No values are being pulled in.
- 0
- 2012-11-29
- Chris Da Sie
-
«Массив» - это то,что происходит,когда вы пытаетесь отобразить массив.Вам нужно перебрать массив и повторить отдельные элементы.'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
-
Возможно,вы захотите добавить hide_empty=>false.Чтобы также показать пустые категории.You might want to add 'hide_empty' => false. To also show empty categories.
- 2
- 2018-06-18
- Floris
-
- 2018-04-25
Используйте приведенный ниже код в файле archive.php. Этот код поможет вам:
<?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>'; } } ?>
-
Пожалуйста,** [отредактируйте] свой ответ ** и добавьте пояснение: ** почему ** это может решить проблему?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-04-25
- fuxia
-
- 2019-12-22
Если в массиве нет значений,вы можете попробовать следующий подход:
$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
Чтобы получить дочерние категории,вы можете использовать следующий код.
$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 ) );
Примечание: - Я использовал hide_empty=>false,чтобы отображать категории без каких-либо сообщений под ними. Затем используйте массив $ Categories для цикла и создания разметки.
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.
Я пытаюсь отобразить все дочерние категории в этом цикле,но у меня возникают проблемы с кодом.Это то,что у меня есть до сих пор.
Любая помощь была бы замечательной