WooCommerce基础页面特色图像自定义主题

时间:2017-06-15 作者:Jarod Thornton

到目前为止,我有一个非常基本的主题,那就是完美地运行WooCommerce。在我的功能中。php我已设置以下内容以支持woocommerce.

//
// WooCommerce Hooks and Theme Overrides
//
remove_action( \'woocommerce_before_main_content\', \'woocommerce_output_content_wrapper\', 10);
remove_action( \'woocommerce_after_main_content\', \'woocommerce_output_content_wrapper_end\', 10);

add_action(\'woocommerce_before_main_content\', \'cm_theme_wrapper_start\', 10);
add_action(\'woocommerce_after_main_content\', \'cm_theme_wrapper_end\', 10);

function cm_theme_wrapper_start() {
echo \'
<div class="main-content-wrapper">
<section class="layout-standard">
<section class="cards">
    <div class="layout-gallery short">
        <div class="background"></div>
        <img class="background-image" src="\'; if ( has_post_thumbnail() ) { the_post_thumbnail_url(\'header-bg\'); } else { echo get_template_directory_uri().\'/images/default.jpg\'; } echo \'" alt="\'; $image_title = get_post(get_post_thumbnail_id())->post_title; echo $image_title; echo \'" title="\'; $image_title = get_post(get_post_thumbnail_id())->post_title; echo $image_title; echo \'">
        <div class="width-container">
            <div class="inner-container">
                <h1 class="section-title">\'; woocommerce_page_title();  echo \'</h1>
            </div>
        </div>
    </div>
</section>
<div class="width-container">
    <div class="content-container">
        <div class="content-holder">\';
}

function cm_theme_wrapper_end() {
echo \'
        </div>
    </div>
</div>
<div class="sidebar-container">\'; 
get_sidebar(); 
echo \'
</div>
</section>
</div>\';
}
这很好,但是在商店主页上,它没有显示页面的特色图像。然而,它显示的是最后一个产品图像。这基本上是一个归档页面,但我想在WordPress之外。

How can I get the featured image of the base shop page to show instead of the last product image?

2 个回复
SO网友:WebElaine

WooCommerce商店页面是一个post类型的存档。它不在WP之外,它只是在插件或主题中进行管理,而不是作为“页面”或其他帖子类型。类似于处理职位类别的方式。

由于商店页面是一个归档文件,因此它的循环/查询可以识别产品。这就是为什么它得到了最后一张产品图片。您应该能够将代码调整为:

... (up to line 16 of your existing code) ... 
echo \'<img class="background-image" src="\';
// if this is the Shop page - function specific to WooCommerce
if(is_shop()) {
    echo get_template_directory_uri().\'/images/shop-page-image.jpg\';
// all other content
} else {
    if ( has_post_thumbnail() ) {
        the_post_thumbnail_url(\'header-bg\');
    } else {
        echo get_template_directory_uri().\'/images/default.jpg\';
    }
}
$image_title = get_post(get_post_thumbnail_id())->post_title;
echo \'" alt="\' . $image_title . \'" title="\' . $image_title . \'" />\';
只需将“shop page image.jpg”更改为要在商店页面上显示的文件名。

SO网友:Jarod Thornton

由于shop的基本页面是帖子类型存档,因此您可以有条件地获取该帖子类型存档的缩略图,并相应地自定义其他页面。

在本例中,WooCommerce类型是product

if (is_post_type_archive(product)){$base_thumb = wc_get_page_id( \'shop\' );} 
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $base_thumb ), "size" ); 
echo $thumbnail[0]; 

结束

相关推荐