WP_Query vs get_posts

时间:2012-08-17 作者:byronyasgur

我读过一本number of questions 关于这些,我仍然无法计算wrt用法的确切区别。如果我需要在数组中返回结果,那么我可能会对大多数次级循环使用WP\\u Query,并且只使用get\\u posts,或者换句话说,这是数组和对象返回之间的主要区别,还是我应该注意其他一些主要因素?

2 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

get\\u posts和;WP\\U查询您可以查看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.

SO网友:Tom Auger

需要注意的一点是get_posts() 有一组默认参数new WP_Query() 没有,包括post_typepost_status. 该函数的默认值配置为便于获取发布的帖子。如果您想要一些不同的东西,则需要显式地传入thos参数,而WP_Query() 你不必那么做。

例如,如果要获取所有帖子,无论其帖子状态如何,您需要调用:get_posts( array( "post_type" => \'any\' ) ); (将“post\\u type”留空-或任何empty() 将评估为true 将导致get_posts() 应用其默认值“publish”)。

结束

相关推荐

META_QUERY返回排除结果

我在multicheckbox自定义字段中的每个位置都有一系列日间时段。我有一个搜索页面,用户可以在其中选择位置、所需的工作日和活动类型。现在我只有两个示例:一个在星期二开会,另一个不开会。然而,在寻找周二的课程时,两人都出现了。以下是我构建论点的方式:$searchday = $day; // save this value for the results_array $day = array();