INFORMATIONAL CONTENT
Pages, 喜欢
posts, 在数据库中存储为
post_types
, 这里最大的区别是页面不在正常的基于时间的列表中。看看法典上怎么说
What Pages Are:
<页面用于比帖子更不依赖时间的内容页面可以组织为页面和子页面页面可以使用不同的页面模板,包括模板文件、模板标签和其他PHP代码当使用复杂的主题并进行大量定制时,页面可能会有更复杂的一系列现成的显示调整本质上,页面是用于非博客内容的。可以从WordPress安装中删除所有或大部分帖子,从而创建一个标准的非博客网站
What Pages are Not:
<页面不是帖子,也不是从大型小说中摘录出来的。它们不会循环浏览您博客的主页。WordPress插件可以在必要时更改默认值页面不能与类别关联,也不能分配标签。页面的组织结构仅来自其层次结构的相互关系,而不是来自标签或类别页面不是文件。它们像帖子一样存储在数据库中。虽然您可以将模板标记和PHP代码放入页面模板文件中,但如果没有像Exec PHP这样的WordPress插件,您无法将它们放入页面或发布内容,因为它会覆盖代码过滤过程站点的提要中不包含页面页面和帖子可能以不同于人类或搜索引擎的方式吸引注意力如果需要,可以将页面(或特定帖子)设置为静态首页,并为最新的博客帖子设置单独的页面,通常称为“博客”页面主要用于非博客目的,可以完美满足您的需求。您可以看看如何创建
page templates 在法典中。
REAL QUESTION
要回答您的问题,输入页面的所有信息都存储在数据库中,就像帖子一样,但不同于存储为
post_type
post
, 页面存储为
post_type
page
. 要获取并显示这些信息,必须查询数据库以调用该信息。
以下是主查询如何确定加载页面时要返回的信息Query Overview
因此,WordPress使用以下步骤来决定在页面上显示哪些帖子或页面,并显示它们:
当访问者第一次单击或键入作为博客一部分的页面的URL时,WordPress首先运行几个核心文件(wp-config.php、wp-settings.php等)。如果您对文件加载顺序的细节感兴趣,请从索引开始。php并遵循文件链,因为每个php文件都包含/需要额外的php文件(或阅读humanshell.net上的这篇优秀文章)
WordPress加载并初始化您激活的任何插件(称为插件初始化操作)main()($wp是wp类的对象,在wp includes/class wp.php中定义)。这告诉WordPress:-使用WP->Parse\\u request()将URL解析为查询规范--下面将介绍更多内容使用$wp\\u query->parse\\u query()设置条件标记使用的所有is\\u变量($wp\\u query是wp\\u query类的对象,在wp includes/query.php中定义)。请注意,尽管此函数的名称不同,但在本例中,WP\\u Query->parse\\u Query实际上并不为我们进行任何解析,因为这是由WP->parse\\u request()事先完成的将查询规范转换为MySQL数据库查询,并在函数WP\\u query->get\\u posts()中运行数据库查询以获取帖子列表。将帖子保存在要在WordPress循环中使用的$wp\\u查询对象中处理404个错误发送博客的HTTP头为WordPress循环设置一些变量
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
用于拉取x个帖子的页面,但是在我的场景中,我只想拉取一个页面的内容,而不是x个帖子
因此,这个问题的答案是,循环只输出来自主查询的信息/数据。主查询从数据库中检索数据,如前所述,主查询仅根据URL和帖子类型检索信息
是否需要创建自定义SQL查询?
不,主查询已经完成了。你可以使用the_post()
从主查询()获取该信息。如果需要进行自定义查询,请使用WP_Query
. 永远不要使用自己的SQL查询
如果我只是使用静态页面,我甚至需要使用循环吗?
没有必要,您只需使用the_post()
显示您的信息。然而,使用循环是一种很好的做法,因为have_posts()
当循环到达终点时触发循环终点。
我希望这能解释你可能遇到的问题。如果我可以把这个留给你,千万不要试图重新发明轮子,但这并不意味着如果有一天到来,你就不能改进设计。但目前,请坚持基本原则,并几乎总是使用默认循环。