Wordpress get_posts()或WP_Query是否可能不返回帖子内容?

Wordpress get_posts()或WP_Query是否可能不返回帖子内容?,wordpress,Wordpress,get_posts()和WP_Query几乎适用于所有内容,但有时我想查询所有帖子,只显示关于它们的基本信息 例如,如果我正在制作一个页面,其中显示了我博客上每一篇文章的标题和链接,那么我就没有理由查询这些文章的内容。如果我有数千篇文章,而每一篇文章的内容都是巨大的,那么将所有内容存储在一个php变量中只是为了获取这些文章的标题和永久链接,这将是极大的浪费。但这正是这两个函数所做的 我希望能够做这样的事情: $query = array( 'numberposts' => -1,

get_posts()
WP_Query
几乎适用于所有内容,但有时我想查询所有帖子,只显示关于它们的基本信息

例如,如果我正在制作一个页面,其中显示了我博客上每一篇文章的标题和链接,那么我就没有理由查询这些文章的内容。如果我有数千篇文章,而每一篇文章的内容都是巨大的,那么将所有内容存储在一个php变量中只是为了获取这些文章的标题和永久链接,这将是极大的浪费。但这正是这两个函数所做的

我希望能够做这样的事情:

$query = array(
  'numberposts' => -1,
  'exclude_fields' => 'post_content'
);
$all_posts = get_posts($query);
有人知道一种不用编写自定义查询就可以做到这一点的方法吗


(自定义查询的缺点——这是一个巨大的缺点——就是你不能使用WordPress的所有现有功能,例如所有的循环函数)

我知道的唯一方法是使用插件(或主题中的functions.php)的过滤器重写SQL查询。由于您有时只想删除内容,因此必须创建一种方法,以便在必要时从模板文件中注册并删除此筛选器

这是您要挂接的过滤器:

不要列出WordPress期望的列,因为您将用显式列列表替换*来破坏某些内容

一般来说,编写原始SQL和获取标题/链接所需的少量代码可能更容易


您也可以忽略所有这些,只使用WordPress的内置功能编写,并依赖于这样一个事实,即您可以缓存页面,并且每天只浪费一次内存,或者允许刷新缓存的频率。

Dan,感谢您的出色响应。你刚才说了我花了很多时间研究和发现的东西。不幸的是,我真的不喜欢这些选项中的任何一个,所以我想我将等待WordPress将其包含在核心中,同时我将依赖缓存插件+如果我没有听到其他人的任何消息,我会将其标记为正确。