您可以:
A: 使用帖子而不是页面。默认情况下,WP在帖子上启用类别,因此很容易为每个帖子选择一个类别(所有类别都用复选框显示,或者很容易添加新类别)。
B: 使用页面,并创建一个自定义的“页面类别”分类法对其进行分类,这样也可以方便地为每个页面选择一个页面类别(您开始键入一个类别,它会自动完成,或者很容易添加一个新类别)。
无论哪种方式,为每个类别添加图像的最简单方法是使用高级自定义字段。它将允许您使用内置媒体库上载或选择图像,而无需编写大量JavaScript或手动粘贴图像URL。
您需要确保为每个帖子/页面分配一个且只有一个类别。除非你加入了很多额外的逻辑,否则WP无法判断他们上次查看的是哪个类别,因此,如果你将一篇文章同时分配给a类和B类,并且访问者一直在阅读B类文章,然后又出现在这篇文章上,那么他们将看到a类标题,而他们不一定会看到这样的标题。但是,当有多个类别时,下面的代码不会“失败”,它只会获取它首先找到的任何类别的图像。
最后,在主题标题中,您将检查显示的内容类型,以确定要显示的图像。类似于此(此版本用于选项A):
<?php
// If this is a single Post
if(is_single(\'post\')) {
// get its Category
$category = get_the_category();
// set required ACF $post_id to category_#
$post_id = \'category_\' . $category->term_id;
// get the first Category\'s ACF image
$header_image = get_field(\'header_image\', $post_id);
}
// If this is one of the Categories
elseif(is_category) {
// set required ACF $post_id to category_#
$post_id = \'category_\' . get_queried_object()->term_id;
// get the first Category\'s ACF image
$header_image = get_field(\'header_image\', $post_id);
}
// Now that we have the image ID, we\'ll use it somehow
// You could output the actual image, or use it as a background like this
?><style>
header { background-image:url(\'<?php echo $header_image; ?>\'); }
</style>
您可能需要根据标记进行调整(可能您不希望图像成为标题上的背景图像,或者您在标题上有一个类,以便其他标题标记不受影响),但这是基本逻辑。