首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >query_posts工作,而get_posts不工作

query_posts工作,而get_posts不工作
EN

WordPress Development用户
提问于 2015-10-27 14:30:42
回答 1查看 481关注 0票数 -1

我试图创建一个显示我的文章的页面(一个与wp中定义的“post”页面不同的页面)。

当我将我的index.php复制到这个新页面并添加

代码语言:javascript
复制
<?php query_posts('post_type=post&posts_per_page=5&paged='.get_query_var('paged')); ?>

上边

代码语言:javascript
复制
    <?php if ( have_posts() ) : ?>
...
...

然后一切正常-我的帖子显示。如果我想把

代码语言:javascript
复制
 <?php   get_posts(); ?>

而不是

代码语言:javascript
复制
<?php query_posts('post_type=post&posts_per_page=5&paged='.get_query_var('paged')); ?>

这些帖子没有显示出来。

由于每个人都认为get_posts()一般比query_posts()更可取,所以我想知道如何使用get_posts()显示这些帖子。

EN

回答 1

WordPress Development用户

发布于 2015-10-27 16:21:03

每个页面都有一个“主查询”,该查询在加载模板之前运行。主查询的结果是WordPress如何确定要加载的模板。标准循环对主查询中包含的数据进行操作,这就是为什么它似乎只是神奇地“工作”,而不必自己显式地查询某些内容。

query_posts覆盖该主查询的内容。这就是不应该使用query_posts的原因--在加载模板之后,您将更改查询结果,这可能会产生意想不到的后果。pre_get_posts是修改主查询的首选方法,它在主查询发生之前运行,因此接下来的所有操作都是在正确的数据集上进行的。

get_postsWP_Query用于运行与主查询分离的附加查询。您必须将结果赋值给一个变量,并对这些结果运行某种循环。您对get_posts的使用什么也不做,因为您对该查询的结果没有做任何操作。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/206724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档