Список всех подкатегорий из категории
-
-
Как объясняется здесь,вы также можете использоватьget_terms (): https://stackoverflow.com/questions/22443352/how-to-get-sub-categories-by-parent-category-id-in-wordpressAs explained here, you can alternatively use get_terms(): https://stackoverflow.com/questions/22443352/how-to-get-sub-categories-by-parent-category-id-in-wordpress
- 0
- 2019-08-07
- retroriff
-
1 ответ
- голосов
-
- 2011-03-30
Да,вы можете использовать get_categories () с атрибутом
'child_of'
. Например,все подкатегории категории с идентификатором 17:$args = array('child_of' => 17); $categories = get_categories( $args ); foreach($categories as $category) { echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> '; echo '<p> Description:'. $category->description . '</p>'; echo '<p> Post Count: '. $category->count . '</p>'; }
В результате будут получены все категории,являющиеся потомками (т. е. дети и внуки).
Если вы хотите отображать только категории,которые являются прямыми потомками (т. е. только дочерние),вы можете использовать атрибут
'parent'
.$args = array('parent' => 17); $categories = get_categories( $args ); foreach($categories as $category) { echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> '; echo '<p> Description:'. $category->description . '</p>'; echo '<p> Post Count: '. $category->count . '</p>'; }
Yes, you can use get_categories() using
'child_of'
attribute. For example all sub categories of category with the ID of 17:$args = array('child_of' => 17); $categories = get_categories( $args ); foreach($categories as $category) { echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> '; echo '<p> Description:'. $category->description . '</p>'; echo '<p> Post Count: '. $category->count . '</p>'; }
This will get all categories that are descendants (i.e. children & grandchildren).
If you want to display only categories that are direct descendants (i.e. children only) you can use
'parent'
attribute.$args = array('parent' => 17); $categories = get_categories( $args ); foreach($categories as $category) { echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> '; echo '<p> Description:'. $category->description . '</p>'; echo '<p> Post Count: '. $category->count . '</p>'; }
-
** Просто предложение: ** Учитывая популярность пользовательских типов сообщений и таксономий,я считаю,что было бы лучше предложитьget_terms,потому что это помогает познакомить пользователей с общими функциями выборки терминов,тогда как функции категорий несколько специфичныво встроенную таксономию (хотя и не во всех случаях).Конечно,соглашаться не обязательно,это всего лишь предложение ...;)**Just a suggestion:** With the popularity of custom post types and taxonomies, i feel it would be better to be suggesting `get_terms`, because this helps familiarise users with general term fetching functions, where as the category functions are somewhat specific to the built-in taxonomy(though not in all cases). You don't have to agree of course, it's just a suggestion... ;)
- 6
- 2011-03-30
- t31os
-
Я согласен,что [get_terms ()] (https://developer.wordpress.org/reference/functions/get_terms/) может быть лучше.I agree that [get_terms()](https://developer.wordpress.org/reference/functions/get_terms/) might be better.
- 2
- 2016-04-04
- Django Reinhardt
-
@t31os - не могли бы вы опубликовать ответ,используя `get_terms`,пожалуйста?@t31os - could you post an answer using `get_terms` please?
- 0
- 2018-03-30
- vsync
-
учтите,что по умолчанию при этом не будут отображаться категории,с которыми не связаны сообщения.используйте hide_empty=>false,чтобы получить все категории (в соответствии с последней версией wordpress)please note, by default, this will not get you categories that has no post associated with them. use `hide_empty => false` to get all categories (as per the recent version of wordpress)
- 1
- 2020-02-04
- swadhwa
Как мне получить все подкатегории из определенной категории?