您需要创建一个自定义模板并为其运行自定义查询。由于WordPress不支持开箱即用的“多类型存档”,因此您可能希望使用此存档的页面。
如果您还没有自定义主题或子主题,请创建一个子主题并添加一个文件,您可以将其命名为“tpl multiarchive.php”。具体名称可以是您喜欢的任何名称;“tpl”前缀是一种常见但不是必需的约定。顶部的注释需要类似于:
<?php
/* Template Name: Multi-CPT Archive
*/
?>
然后,您可以创建一个新页面,在其中保存此存档并选择此模板名称。
如果您还想管理页面顶部的某些内容,可以在模板中包含常规内容循环,并在wp admin中添加您喜欢的任何内容。然后,您将需要创建第二个查询以从3个CPT中引入帖子,并添加分页,因为您可能不希望总是一次显示所有帖子。
如果您不想管理此页面上的任何内容,而只想让它显示您的CPT和分页,则可以使用pre_get_posts
筛选以更改主查询。通过这种方式,您可以告诉WordPress立即运行一个查询以从3个CPT中获取帖子,而不是忽略检查此页面内容的第一个查询,而不浪费处理能力。通常这种类型的过滤器放置在内部functions.php
. 然后,您可以向模板文件中添加代码,以根据需要显示查询中的帖子。