update_object_term_cache() - WordPress 函数参考中文文档

返回介绍

update_object_term_cache()

发布于 2017-09-11 字数3032 浏览 916 评论 0

update_object_term_cache( string|array $object_ids,  array|string $object_type )

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.


参数

$object_ids

(string|array)
(Required)
Comma-separated list or array of term object IDs.

$object_type

(array|string)
(Required)
The taxonomy object type.


返回值

(void|false) False if all of the terms in $object_ids are already cached.


源代码

File: wp-includes/taxonomy.php

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);

	$taxonomies = get_object_taxonomies($object_type);

	$ids = array();
	foreach ( (array) $object_ids as $id ) {
		foreach ( $taxonomies as $taxonomy ) {
			if ( false === wp_cache_get($id, "{$taxonomy}_relationships") ) {
				$ids[] = $id;
				break;
			}
		}
	}

	if ( empty( $ids ) )
		return false;

	$terms = wp_get_object_terms( $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 ( $ids as $id ) {
		foreach ( $taxonomies as $taxonomy ) {
			if ( ! isset($object_terms[$id][$taxonomy]) ) {
				if ( !isset($object_terms[$id]) )
					$object_terms[$id] = array();
				$object_terms[$id][$taxonomy] = array();
			}
		}
	}

	foreach ( $object_terms as $id => $value ) {
		foreach ( $value as $taxonomy => $terms ) {
			wp_cache_add( $id, $terms, "{$taxonomy}_relationships" );
		}
	}
}

更新日志

Version 描述
2.3.0 Introduced.

相关函数

Uses

  • wp-includes/cache.php:
    wp_cache_get()
  • wp-includes/cache.php:
    wp_cache_add()
  • wp-includes/taxonomy.php:
    wp_get_object_terms()
  • wp-includes/taxonomy.php:
    get_object_taxonomies()

Used By

  • wp-includes/post.php:
    update_post_caches()

User Contributed Notes

上一篇:update_network_option()

下一篇:update_option()

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!