Resurrect count padding.
git-svn-id: https://develop.svn.wordpress.org/trunk@6087 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
64bbc52982
commit
f29d32da27
|
@ -386,19 +386,22 @@ function &get_terms($taxonomies, $args = '') {
|
||||||
$defaults = array('orderby' => 'name', 'order' => 'ASC',
|
$defaults = array('orderby' => 'name', 'order' => 'ASC',
|
||||||
'hide_empty' => true, 'exclude' => '', 'include' => '',
|
'hide_empty' => true, 'exclude' => '', 'include' => '',
|
||||||
'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '',
|
'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '',
|
||||||
'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '');
|
'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '',
|
||||||
|
'pad_counts' => false);
|
||||||
$args = wp_parse_args( $args, $defaults );
|
$args = wp_parse_args( $args, $defaults );
|
||||||
$args['number'] = (int) $args['number'];
|
$args['number'] = (int) $args['number'];
|
||||||
if ( !$single_taxonomy || !is_taxonomy_hierarchical($taxonomies[0]) ||
|
if ( !$single_taxonomy || !is_taxonomy_hierarchical($taxonomies[0]) ||
|
||||||
'' != $args['parent'] ) {
|
'' != $args['parent'] ) {
|
||||||
$args['child_of'] = 0;
|
$args['child_of'] = 0;
|
||||||
$args['hierarchical'] = false;
|
$args['hierarchical'] = false;
|
||||||
|
$args['pad_counts'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 'all' == $args['get'] ) {
|
if ( 'all' == $args['get'] ) {
|
||||||
$args['child_of'] = 0;
|
$args['child_of'] = 0;
|
||||||
$args['hide_empty'] = 0;
|
$args['hide_empty'] = 0;
|
||||||
$args['hierarchical'] = false;
|
$args['hierarchical'] = false;
|
||||||
|
$args['pad_counts'] = false;
|
||||||
}
|
}
|
||||||
extract($args, EXTR_SKIP);
|
extract($args, EXTR_SKIP);
|
||||||
|
|
||||||
|
@ -510,11 +513,9 @@ function &get_terms($taxonomies, $args = '') {
|
||||||
$terms = & _get_term_children($child_of, $terms, $taxonomies[0]);
|
$terms = & _get_term_children($child_of, $terms, $taxonomies[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Update term counts to include children.
|
||||||
// Update category counts to include children.
|
|
||||||
if ( $pad_counts )
|
if ( $pad_counts )
|
||||||
_pad_category_counts($type, $categories);
|
_pad_term_counts($terms, $taxonomies[0]);
|
||||||
*/
|
|
||||||
|
|
||||||
// Make sure we show empty categories that have children.
|
// Make sure we show empty categories that have children.
|
||||||
if ( $hierarchical && $hide_empty ) {
|
if ( $hierarchical && $hide_empty ) {
|
||||||
|
@ -1129,6 +1130,24 @@ function &_get_term_children($term_id, $terms, $taxonomy) {
|
||||||
return $term_list;
|
return $term_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Recalculates term counts by including items from child terms
|
||||||
|
// Assumes all relevant children are already in the $terms argument
|
||||||
|
function _pad_term_counts(&$terms, $taxonomy) {
|
||||||
|
$term_hier = _get_term_hierarchy($taxonomy);
|
||||||
|
|
||||||
|
if ( empty($term_hier) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach ( $terms as $key => $term ) {
|
||||||
|
if ( $children = _get_term_children($term->term_id, $terms, $taxonomy) ) {
|
||||||
|
foreach ( $children as $child ) {
|
||||||
|
$child = get_term($child, $taxonomy);
|
||||||
|
$terms[$key]->count += $child->count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Default callbacks
|
// Default callbacks
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue