Get_Terms()是否在其查询上使用任何类型的缓存?

时间:2017-01-12 作者:Ben

在docblock中get_terms(), 它在缓存方面说明了以下内容:

* The {@see \'get_terms\'} filter will be called when the cache has the term and will
* pass the found term along with the array of $taxonomies and array of $args.
这是什么意思will be called the cache has the term ? 这是否意味着当我apply_filter 在…上get_terms, 仅当术语在缓存中时才会调用它?我不完全确定它在这里指的是什么缓存。我还不太熟悉Wordpress缓存,所以如果这对我来说是显而易见的,请原谅我。

1 个回复
SO网友:Howdy_McGee

使用者gmazzap 有一个好的explanation of Object Cache 你可能想再读一遍。

如果我们看看get_terms() 我们可以看到它创建了new WP_Term_Query() 还有那些课程get_terms() 是潜在缓存发生的地方。Line 666 specifically. 再往下一点,我们可以看看它是否测试if a cache exists.

因此,缓存只会持续一个页面加载,以确保重复查询不会因多次调用而使数据库陷入困境。过滤器将尝试使用缓存,如果找不到缓存(不太可能),它将创建一个缓存以供将来在页面加载行中使用。

相关推荐

显示所有类别而不是分配给特定帖子的类别的GET_TERMS

我的自定义帖子类型中有3篇帖子(\'careers\'). 我注册了自定义分类法(\'career_categories\').我创建了3个职位,其中两个职位属于“全职”,一个职位属于“兼职”。我在循环中使用以下代码:$terms = get_terms( \'career_categories\', array( \'hide_empty\' => true, ) ); $html_out .= \'<td class=\"column-\'. $col++ .\'\"&g