一、单页:单页中的子页有banner就显示子页的,单页中的子页没有就显示父页的banner,父页没有的就显示默认banner
// 获取当前页面的ID
$current_page_id = get_the_ID();
// 获取子页面的Banner图像URL
$banner_image_url = get_field('banner_image', $current_page_id); // 获取子页面的Banner图像
// 如果子页面没有Banner图像,获取父页面的Banner图像
if (empty($banner_image_url)) {
$parent_page_id = wp_get_post_parent_id($current_page_id);
$banner_image_url = get_field('banner_image', $parent_page_id); // 获取父页面的Banner图像
}
// 如果父页面和子页面都没有Banner图像,使用默认Banner图像
if (empty($banner_image_url)) {
$default_banner_image_url = '默认Banner图像的URL'; // 替换为默认Banner图像的URL
$banner_image_url = $default_banner_image_url;
}
// 显示Banner图像
echo '<div class="banner">';
echo '<img src="' . esc_url($banner_image_url) . '" alt="Banner">';
echo '</div>';
二、分类页:文章类型中详情页显示分类中设置的banner,子类没有banner就显示父类的banner,父类也没有的就显示默认的banner
// 获取当前文章的分类
$categories = get_the_category();
// 初始化Banner图像URL
$banner_image_url = '';
// 检查是否有分类
if ($categories) {
// 遍历每个分类
foreach ($categories as $category) {
// 尝试获取分类的Banner图像URL
$banner_image_url = get_field('banner_image', $category);
// 如果分类有Banner图像,则停止循环
if ($banner_image_url) {
break;
}
}
}
// 如果分类没有Banner图像,则获取父分类的Banner图像
if (empty($banner_image_url)) {
foreach ($categories as $category) {
// 获取父分类
$parent_category_id = $category->parent;
// 检查父分类ID是否存在
if ($parent_category_id) {
$parent_category = get_category($parent_category_id);
// 检查父分类是否存在,并尝试获取父分类的Banner图像URL
if ($parent_category) {
$banner_image_url = get_field('banner_image', $parent_category);
// 如果父分类有Banner图像,则停止循环
if ($banner_image_url) {
break;
}
}
}
}
}
// 如果分类和父分类都没有Banner图像,则使用默认的缩略图
if (empty($banner_image_url)) {
$thumbnail_url = get_the_post_thumbnail_url(get_the_ID(), 'thumbnail');
$banner_image_url = $thumbnail_url ? $thumbnail_url : '默认缩略图的URL';
}
// 显示Banner图像
echo '<div class="banner">';
echo '<img src="' . esc_url($banner_image_url) . '" alt="Banner">';
echo '</div>';
三、详情页:显示自己所属分类的banner图,如果没有就显示父分类的banner图,如果还没有就显示默认的缩略图
// 获取当前文章的分类
$categories = get_the_category();
// 初始化Banner图像URL
$banner_image_url = '';
// 遍历每个分类
foreach ($categories as $category) {
// 尝试获取分类的Banner图像URL
$banner_image_url = get_field('banner_image', $category);
// 如果分类有Banner图像,则停止循环
if ($banner_image_url) {
break;
}
}
// 如果分类没有Banner图像,则获取父分类的Banner图像
if (empty($banner_image_url)) {
foreach ($categories as $category) {
// 获取父分类
$parent_category_id = $category->parent;
$parent_category = get_category($parent_category_id);
// 尝试获取父分类的Banner图像URL
$banner_image_url = get_field('banner_image', $parent_category);
// 如果父分类有Banner图像,则停止循环
if ($banner_image_url) {
break;
}
}
}
// 如果分类和父分类都没有Banner图像,则使用默认的缩略图
if (empty($banner_image_url)) {
$thumbnail_url = get_the_post_thumbnail_url(get_the_ID(), 'thumbnail');
$banner_image_url = $thumbnail_url ? $thumbnail_url : '默认缩略图的URL';
}
// 显示Banner图像
echo '<div class="banner">';
echo '<img src="' . esc_url($banner_image_url) . '" alt="Banner">';
echo '</div>';