用图片替换 WooCommerce 类别存档标题

Replace WooCommerce category archive title with image

archive-product.php

<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

        <h1><?php woocommerce_page_title(); ?></h1>

    <?php endif; ?>

    <?php  
        **do_action( 'woocommerce_archive_description' );**

    ?>

横幅是类别图片

此代码段用于在横幅位置显示图片,以前效果很好,但现在我需要在另一个位置添加横幅,此代码段也显示说明。如果我删除代码段,图像也会被删除。

我添加的另一个挂钩在 functions.php

add_action( 'woocommerce_archive_description', 'woocommerce_category_image', 2 );
function woocommerce_category_image() {

    if ( is_product_category() ){
        global $wp_query;
        $cat = $wp_query->get_queried_object();
        $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
        $image = wp_get_attachment_url( $thumbnail_id );

        if ( $image ) {
            echo '<div class="gb_coolection_banner"><img class="gb_promo_image" src="' . $image . '" alt="" /></div><div class="'
                    . 'clearboth"></div>' . $cat->description;
        }
    }
}

$cat->description 位正在打印出您不需要的文本。如果您仍然在别处使用此函数,则需要在没有该行的情况下编写另一个函数并调用它。否则删除该位将在调用该方法的任何地方修复它。

您需要从 archive-product.php 模板中可见的 woocommerce_archive_description 挂钩中解开 woocommerce_product_archive_description,可能 woocommerce_product_archive_description

您可以在主题 functions.php:

中使用 remove_action()
function so_31423071_remove_archive_description(){
    remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description' );
    remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description' );
}
add_action( 'woocommerce_before_main_content', 'so_31423071_remove_archive_description' );

现在我已经解决了这个问题并在我的 style.css 文件中进行了更改以实现所需的内容。

仍然欢迎未来的解决方案。 :)