我有一个问题,为什么在使用模板文件时,主查询会调用当前页面的信息,而不是查询帖子。
如果通过使用创建自定义查询来修改循环new WP_query
, 我可以访问自定义模板上的所有帖子。然而,当我尝试在我的自定义模板上使用主循环/查询时have posts()
和the_post()
我的页面似乎在查询有关当前页面的信息(例如,当\\u标题和\\u日期与当前页面匹配时,而不是我的帖子)。
奇怪的是,我的头版似乎不是这样。首页的主查询很好。关于“have posts”这样的循环的主要功能为什么会调用当前页面来获取模板的信息,而不是查询帖子,你有什么想法吗?我做错了什么?
我用过wp_reset_query()
当我使用主循环时,在所有循环之后wp_reset_postdata()
在我使用的所有循环之后new WP_query
.
更新时间:
幸亏@Milo
\'我发现我误解了WordPress的工作原理。我想为特定类别的achive页面定制模板,例如“特殊”类别。
我正在使用:
类别的自定义模板,具有任意名称(例如。special.php
) 和类别存档在存档中重新路由。php,它将类别指向我的文件,例如。special.php
我试图使用带有任意名称的自定义页面/模板的主post查询。
我现在意识到,我可以更优雅地完成使用基于帖子的主查询的自定义类别页面,而无需重新路由/归档。php解决方案。更好的方法是重命名自定义类别。我创建的php文件,具有任意名称(例如。special.php
) 名称与WordPress的本机类别约定匹配。此约定要求您使用category-
前缀与目标类别名称(例如category-special.php
).
我重新命名了那个风俗。php文件的名称使用category-
并删除了我在存档中创建的重新路由。php。在采取这两个步骤之后,我只能使用主循环函数(例如。have_post()
和the_post
) 并为该类别定制设计/元素/html/php。
谢谢@Milo
!
在WordPress中有很多复杂的东西需要发现,但很好地解决了它们!