获取帖子并包含分类术语

时间:2016-05-23 作者:addedlovely

如何从同一查询返回post数据中的分类术语。

目前我正在调用get\\u posts/wp\\u query,然后循环调用wp\\u get\\u post\\u terms。不用说,它会破坏数据库并导致太多的查询。

在上下文中,我列出了所有WooCommerce产品(“产品”帖子类型),然后添加了“设计器”分类术语。

使用任何内置功能都可以做到这一点吗?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您应该使用get_the_terms(). wp_get_post_terms() 查询db以获取学期后信息,其中get_the_terms() 直接从后期缓存返回后期对象,仅在该信息不可用时查询数据库。

默认情况下,所有post的术语都由正在执行的查询缓存。

编辑我无法评论(蹩脚的移动设备),但没有原生方法可以在单个对象中返回包含各自的帖子术语和元数据的帖子对象。但是,当WP_Query 通过主查询执行,query_posts(), get_posts() 或新实例WP_Query, by default, WP_Query 返回中属于帖子的所有相关帖子术语和帖子元$posts 查询对象的属性。

然而,这些post terms和post meta并不是作为post对象的一部分返回的,这些数据直接存储到它们的相对缓存中,即post term缓存和post meta缓存,在post terms的情况下,它们会一直保留在那里,直到通过以下函数进行查询get_the_terms(). 设置这些缓存是为了避免进行额外的db调用以返回post/post术语和/或元数据。这意味着,无论你拨打1个或1000个电话get_the_terms(), 你还是会zero db调用。

综上所述,当您认为要进行额外的db调用以返回术语后的数据时,实际上根本没有进行任何db调用,所有术语后的数据都是从术语缓存中返回的

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果