Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




_update_post_term_count [ WordPress Function ]

_update_post_term_count ( $terms, $taxonomy )
Access:
  • private
Parameters:
  • (array) $terms List of Term taxonomy IDs
  • (object) $taxonomy Current taxonomy object of terms
Uses:
  • $wpdb
Defined at:



Will update term count based on object types of the current taxonomy.

Private function for the default callback for post_tag and category taxonomies.

Source


<?php
function _update_post_term_count$terms$taxonomy ) {
    global 
$wpdb;

    
$object_types = (array) $taxonomy->object_type;

    foreach ( 
$object_types as &$object_type )
        list( 
$object_type ) = explode':'$object_type );

    
$object_types array_unique$object_types );

    if ( 
false !== ( $check_attachments array_search'attachment'$object_types ) ) ) {
        unset( 
$object_types$check_attachments ] );
        
$check_attachments true;
    }

    if ( 
$object_types )
        
$object_types esc_sqlarray_filter$object_types'post_type_exists' ) );

    foreach ( (array) 
$terms as $term ) {
        
$count 0;

        
// Attachments can be 'inherit' status, we need to base count off the parent's status if so
        
if ( $check_attachments )
            
$count += (int) $wpdb->get_var$wpdb->prepare"SELECT COUNT(*) FROM $wpdb->term_relationships$wpdb->posts p1 WHERE p1.ID = $wpdb->term_relationships.object_id AND ( post_status = 'publish' OR ( post_status = 'inherit' AND post_parent > 0 AND ( SELECT post_status FROM $wpdb->posts WHERE ID = p1.post_parent ) = 'publish' ) ) AND post_type = 'attachment' AND term_taxonomy_id = %d"$term ) );

        if ( 
$object_types )
            
$count += (int) $wpdb->get_var$wpdb->prepare"SELECT COUNT(*) FROM $wpdb->term_relationships$wpdb->posts WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND post_status = 'publish' AND post_type IN ('" implode("', '"$object_types ) . "') AND term_taxonomy_id = %d"$term ) );

        
do_action'edit_term_taxonomy'$term$taxonomy );
        
$wpdb->update$wpdb->term_taxonomycompact'count' ), array( 'term_taxonomy_id' => $term ) );
        
do_action'edited_term_taxonomy'$term$taxonomy );
    }
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

Kullanýcý Tartýþmalarý [ wordpress.org ]

- Bulunamadý -

Yeni bir konu yaz ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics