问题描述

我已经阅读了关于 SE 的一些 of 问题,但是我仍然无法确定 wrt 的确切用法。可以这么说,我可能会使用 WP_Query 作为大部分次级循环,并且只有在需要在数组中返回的结果时才使用 get_posts,或者换句话说,两个数组 vs 对象返回的主要区别或者还有其他一些主要因素我应该注意吗?

最佳解决方案

get_posts& WP_Query

您可以将 get_posts()视为细长的 WP_Query 。其实看看 source

//... prepares query array $r
$get_posts = new WP_Query;
return $get_posts->query($r);

get_posts()使用 WP_Query,但只返回一系列的帖子 – 没有更多。此外,它设置:

$r['no_found_rows'] = true;

通常 (默认情况下,使用 WP_Query 对象) – WordPress 查询总共有多少个帖子 – 即使您仅在前 10 个之后。它可以执行分页。所以 get_posts()实际上 (稍微) 更快 (也忽略了粘贴的帖子) 。

哪个使用…

如果你只需要一个数组的帖子,并且不需要查询对象 – 使用 get_posts()。否则,如果您确实需要访问查询对象方法,或者分页或粘贴帖子在顶部,则应使用 WP_Query

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。