在单个存档页面上显示所有自定义帖子类型

时间:2020-02-18 作者:The Chewy

我在一个网站上有3种不同的自定义帖子类型-是否可以设置并存档显示所有3种自定义帖子类型的页面(将以默认WP日期顺序显示)。

自定义帖子类型本身有各自的归档页面,但我需要创建一个涵盖所有这些页面的归档页面。

任何指点都会很神奇。

艾米丽

1 个回复
SO网友:WebElaine

您需要创建一个自定义模板并为其运行自定义查询。由于WordPress不支持开箱即用的“多类型存档”,因此您可能希望使用此存档的页面。

如果您还没有自定义主题或子主题,请创建一个子主题并添加一个文件,您可以将其命名为“tpl multiarchive.php”。具体名称可以是您喜欢的任何名称;“tpl”前缀是一种常见但不是必需的约定。顶部的注释需要类似于:

<?php
/* Template Name: Multi-CPT Archive
*/
?>
然后,您可以创建一个新页面,在其中保存此存档并选择此模板名称。

如果您还想管理页面顶部的某些内容,可以在模板中包含常规内容循环,并在wp admin中添加您喜欢的任何内容。然后,您将需要创建第二个查询以从3个CPT中引入帖子,并添加分页,因为您可能不希望总是一次显示所有帖子。

如果您不想管理此页面上的任何内容,而只想让它显示您的CPT和分页,则可以使用pre_get_posts 筛选以更改主查询。通过这种方式,您可以告诉WordPress立即运行一个查询以从3个CPT中获取帖子,而不是忽略检查此页面内容的第一个查询,而不浪费处理能力。通常这种类型的过滤器放置在内部functions.php. 然后,您可以向模板文件中添加代码,以根据需要显示查询中的帖子。

相关推荐

permalinks issue and archives

我对运行在WP 3.3上的一个站点有一个问题,当我们通过“/%post\\u id%/%postname%/”使永久链接成为任何内容时,归档页面会断开并变成404。经过一些研究,我明白了为什么从性能的角度来看,这不是一个好的做法,所以我尝试了建议的备选方案:“/%year%/%postname%/”和“/%post\\u id%/%postname%/”这两个建议都有效,只是只有使用post\\u id的建议,归档URL才会变成“/date/2012/11/”,并被找到。根据permalink的任何其他建