两者的主要区别在于wp_get_post_terms
实际上,它不是缓存的,总是直接进入数据库get_the_terms
内部使用相同的API,wp_get_post_terms
是一个包裹wp_get_object_terms
, get\\u the\\u terms也使用它,但具有缓存和较少的可配置选项。
然而,这是一个X Y问题。您不应该问如何使用空返回值解决您的解决方案,而是应该问如何解决您的问题,即:
我得到了一个循环中使用的类别数组,等等。唯一的问题是它是按字母顺序排列的。(我希望它按层次顺序排列。)
There is no such thing as hierarchical order in these APIs.
<要做到这一点,您需要添加一个处理步骤或循环来迭代术语列表。e、 g.对于每个术语,如果没有父项,则显示它,然后在嵌套的循环中循环所有术语,显示那些以该术语为父项的术语,等等。如果需要多个深度层,则需要递归。
出于性能原因,您应该使用get_the_terms
.