wpseek.com
Outil de recherche WordPress pour les développeurs et auteurs de thèmes
update_object_term_cache › WordPress Function
Depuis2.3.0
Dépréciéen/a
› update_object_term_cache ( $object_ids, $object_type )
| Paramètres: (2) |
|
| Retourne: |
|
| Défini(e) dans: |
|
| Codex: |
Updates the cache for the given term object ID(s).
Note: Due to performance concerns, great care should be taken to only update term caches when necessary. Processing time can increase exponentially depending on both the number of passed term IDs and the number of taxonomies those terms belong to. Caches will only be updated for terms not already cached.Fonctions en relation: get_object_term_cache, update_term_cache, clean_object_term_cache, update_menu_item_cache, update_category_cache
Source
function update_object_term_cache( $object_ids, $object_type ) {
if ( empty( $object_ids ) ) {
return;
}
if ( ! is_array( $object_ids ) ) {
$object_ids = explode( ',', $object_ids );
}
$object_ids = array_map( 'intval', $object_ids );
$non_cached_ids = array();
$taxonomies = get_object_taxonomies( $object_type );
foreach ( $taxonomies as $taxonomy ) {
$cache_values = wp_cache_get_multiple( (array) $object_ids, "{$taxonomy}_relationships" );
foreach ( $cache_values as $id => $value ) {
if ( false === $value ) {
$non_cached_ids[] = $id;
}
}
}
if ( empty( $non_cached_ids ) ) {
return false;
}
$non_cached_ids = array_unique( $non_cached_ids );
$terms = wp_get_object_terms(
$non_cached_ids,
$taxonomies,
array(
'fields' => 'all_with_object_id',
'orderby' => 'name',
'update_term_meta_cache' => false,
)
);
$object_terms = array();
foreach ( (array) $terms as $term ) {
$object_terms[ $term->object_id ][ $term->taxonomy ][] = $term->term_id;
}
foreach ( $non_cached_ids as $id ) {
foreach ( $taxonomies as $taxonomy ) {
if ( ! isset( $object_terms[ $id ][ $taxonomy ] ) ) {
$object_terms[ $id ][ $taxonomy ] = array();
}
}
}
$cache_values = array();
foreach ( $object_terms as $id => $value ) {
foreach ( $value as $taxonomy => $terms ) {
$cache_values[ $taxonomy ][ $id ] = $terms;
}
}
foreach ( $cache_values as $taxonomy => $data ) {
wp_cache_add_multiple( $data, "{$taxonomy}_relationships" );
}
}