wordpress各页面的banner图设置代码

一、单页:单页中的子页有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 '';

二、分类页:文章类型中详情页显示分类中设置的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 '';

三、详情页:显示自己所属分类的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 '';

你可能感兴趣的:(wordpress)