wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren
_pad_term_counts [ WordPress Function ]
| Zugriff: |
|
| Parameter: |
|
| Nutzt: |
|
| Gibt zurück: |
|
| Definiert in: |
|
Add count of children to parent count.
Recalculates term counts by including items from child terms. Assumes all relevant children are already in the $terms argument.
Source
<?php
function _pad_term_counts(&$terms, $taxonomy) {
global $wpdb;
// This function only works for hierarchical taxonomies like post categories.
if ( !is_taxonomy_hierarchical( $taxonomy ) )
return;
$term_hier = _get_term_hierarchy($taxonomy);
if ( empty($term_hier) )
return;
$term_items = array();
foreach ( (array) $terms as $key => $term ) {
$terms_by_id[$term->term_id] = & $terms[$key];
$term_ids[$term->term_taxonomy_id] = $term->term_id;
}
// Get the object and term ids and stick them in a lookup table
$tax_obj = get_taxonomy($taxonomy);
$object_types = esc_sql($tax_obj->object_type);
$results = $wpdb->get_results("SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships INNER JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (" . implode(',', array_keys($term_ids)) . ") AND post_type IN ('" . implode("', '", $object_types) . "') AND post_status = 'publish'");
foreach ( $results as $row ) {
$id = $term_ids[$row->term_taxonomy_id];
$term_items[$id][$row->object_id] = isset($term_items[$id][$row->object_id]) ? ++$term_items[$id][$row->object_id] : 1;
}
// Touch every ancestor's lookup row for each post in each term
foreach ( $term_ids as $term_id ) {
$child = $term_id;
while ( !empty( $terms_by_id[$child] ) && $parent = $terms_by_id[$child]->parent ) {
if ( !empty( $term_items[$term_id] ) )
foreach ( $term_items[$term_id] as $item_id => $touches ) {
$term_items[$parent][$item_id] = isset($term_items[$parent][$item_id]) ? ++$term_items[$parent][$item_id]: 1;
}
$child = $parent;
}
}
// Transfer the touched cells
foreach ( (array) $term_items as $id => $items )
if ( isset($terms_by_id[$id]) )
$terms_by_id[$id]->count = count($items);
}
?>
Beispiele [ wp-snippets.com ]
Top Google Suchergebnisse
- #18455 (Undefined index in _pad_term_counts()) – WordPress Trac
When using wp_list_categories() in conjunction with a comma separated string of child category ID's and the 'show_count=1' option, the _pad_term_counts() ...
core.trac.wordpress.org - #9715 (Category List in a drop down does not pad term counts ...
Description. Hello. I am using WordPress 2.7.1. I have a blog with many categories, subcategories, sub-subcategories etc. When I post, I link that post only to the ...
core.trac.wordpress.org - #20635 (_pad_term_count get's stuck if there is a loop in the ...
May 8, 2012 ... _pad_term_count get's stuck if there is a loop in the hierarchy ... If one does exist then _pad_term_counts() gets stuck :(. When one of these ...
core.trac.wordpress.org - Docs for page functions.wp-taxonomy.php
void _pad_term_counts ( &$terms, $taxonomy). &$terms; $taxonomy. Documentation generated on Thu, 10 May 2012 01:34:01 +0100 by phpDocumentor 1.4.3.
phpdoc.ftwr.co.uk