Wordpress - get_posts()比The Loop更有效吗?

时间:2013-11-27 07:56:53

标签: php wordpress loops wordpress-theming

category.php中,我想获得该类别中的帖子列表。

我找到了两种方法:使用get_posts($args)The Loop

get_posts()方式

$args = array (
  "category" => ID );
$posts = get_posts($args);
// then use foreach to loop the $posts

循环方式

<?php if (have_posts() ): ?>
  <?php while (have_posts() ): the_post(); ?>
    ...
  <?php endwhile; ?>
<?php endif; ?>

哪一个效率更高?

根据我在搜索中发现的内容,get_posts()用于自定义模板,而The Loop用于遵循Wordpress命名约定的模板中。

我更喜欢get_posts(),但如果与The Loop相比有很大的开销,我应该重新考虑一下。

1 个答案:

答案 0 :(得分:1)

我终于找到了答案。

当我们使用正确的模板(遵循命名约定的模板)打开页面时,Wordpress会自动进行查询以获取所有相关的帖子或内容

因此,如果我使用$posts = get_posts($args);,则意味着我会进行额外的查询,这是不必要的。

$posts = get_posts($args);只能在模板之外使用,例如在侧边栏上,并且每个页面上始终存在。