POST循环如何集成单个页面元素

时间:2021-06-16 作者:Razzupaltuff

我只是想了解Wordpress中的编码是如何工作的。我已经阅读了一系列关于帖子循环以及如何使用查询修改它们的教程,但我不知道我使用Wordpress创建的单个页面内容是如何与主题模板集成的,这样我的页面最终会显示出来,我想看到的任何帖子都会按照我指定的方式格式化。

例如,我正在使用Wordpress的“twentytwentyone主题”构建页面;指数php“;样板它只包含一个简单的post循环。我创建的东西(带有特定元素)和布局是如何融入其中的?主题中的代码如何与我的页面设计和我在该页面上放置的元素结合在一起?

不同之处在于:我在Wordpress中添加了一个新页面,告诉Wordpress要使用哪个模板,并在该页面中创建一些Wordpress块和元素。这一切是如何融合在一起的?Wordpress是否;“神奇地”;是否将我的页面代码放在模板的post循环正文中?

如果我创建并使用带有多个帖子循环的模板,会发生什么?比如说,我有两个不同的帖子类别,我想在页面上的某个地方显示第一个类别的帖子,然后再向下显示第二个类别的帖子?

此外,我该如何显示一个类别的10篇帖子,以及当用户单击一些“时”;“下一步”;按钮,显示下一个10,等等?

假设我在页面中放置了一些php代码来格式化帖子,那么这些代码是如何从帖子循环中获取帖子的呢?二十二一指数。php的post循环已经调用了\\u post()和get\\u template\\u部分(…)。根据Wordpress codex,the\\u post()简单地说;在循环中交互post索引;。这是否意味着在循环浏览所有帖子时,帖子的数据只能通过codex函数逐帖访问,并且我可以在php代码(或我使用的任何页面元素)中访问当前帖子的数据?

我找到的所有文档和tut都只是向你抛出了一些零碎的信息,但我没有找到一个能告诉我整个情况的文档和tut,比如具有控制和数据流的完整基本Wordpress体系结构。

1 个回复
SO网友:Tom J Nowell

如何加载帖子模板:

您访问WP网站的URL,/abc/xyzindex.php?var=value 在内部,它运行所有重写规则,直到第一个规则匹配为止,如果没有匹配,则为404和404.php 已加载<这就是永久链接URL的来源/abc/xyz 进入表单的URLindex.php?foo=xyz 哪里foo 是一个查询变量WP_Query. foo 只是一个示例,有关有效参数的列表,请参见WP_Query 文档WP_Query 对象是支持post循环的主查询is_single() 或is_search()<这也意味着前端标准WordPress中的所有URL都有一个post循环/查询,或者是多个post的存档,或者是单个post查询运行一些过滤器,pre_get_posts, 等等,以便在数据库发生问题之前更改查询!去拿帖子WP_Query 以及所有参数和标志,以决定加载哪个模板。(请参见模板层次结构图)。这是WP决定哪个主题文件显示post循环的方式<请注意,帖子已经从数据库中获取

  • index.php 这就是为什么它是主题中唯一必需的PHP文件的原因
  • 您无法从主题模板内部更改主查询,因为主查询已经发生,现在加载我们在上一步中决定的主题模板为时已晚。该模板应该有一个标准的post循环,这就是通过以下函数显示post的内容the_titlethe_content.<请注意,post循环不会从数据库中获取post,这发生在WP甚至选择模板之前。它只是为您提供了一个显示超短版信息的机会:

    URL+重写规则=查询变量;is\\u search()拾取search.php, etc加载模板以显示获取的帖子内容,主题可能会将一些javascript排入队列,而帖子内容本身是从数据库中提取的,并在其上运行一些过滤器。还有短码系统和动态块系统。每一个都是各自独立的系统。

    还要记住,在一天结束时,块的最终结果仍然是保存在数据库的post content列中的HTML内容。

    这是页面加载的基本高级体系结构。

  • 相关推荐

    Updating modified templates

    我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?