在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相比有很大的开销,我应该重新考虑一下。
答案 0 :(得分:1)
我终于找到了答案。
当我们使用正确的模板(遵循命名约定的模板)打开页面时,Wordpress会自动进行查询以获取所有相关的帖子或内容
因此,如果我使用$posts = get_posts($args);
,则意味着我会进行额外的查询,这是不必要的。
$posts = get_posts($args);
只能在模板之外使用,例如在侧边栏上,并且每个页面上始终存在。