从产品展示页面上显示删除精选图片

时间:2013-06-24 14:42:49

标签: wordpress woocommerce

我正在使用wooCommerce和Wordpress。 当您为woocommerce产品设置特色图像时,它会在产品详细信息页面的图库中显示为第一个/主图像。我不想要这个。我只想完全隐藏/删除产品详细信息页面中的精选图像。我希望特色图片仅显示在产品类别页面中,而不是显示在单个产品详细信息页面上。 我尝试用代码删除图像 remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 ); 在主题函数文件中。 仍然无法看到预期的结果。

我正在使用主题room09

我想隐藏此垂直图像(已将其设置为特色图片)仅显示在此页面上。

<div class="images">

<?php
    if ( has_post_thumbnail() ) {

        $image              = get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) );
        $image_title        = esc_attr( get_the_title( get_post_thumbnail_id() ) );
        $image_link         = wp_get_attachment_url( get_post_thumbnail_id() );
        $attachment_count   = count( get_children( array( 'post_parent' => $post->ID, 'post_mime_type' => 'image', 'post_type' => 'attachment' ) ) );

        if ( $attachment_count != 1 ) {
            $gallery = '[product-gallery]';
        } else {
            $gallery = '';
        }

        echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s"  rel="prettyPhoto' . $gallery . '">%s</a>', $image_link, $image_title, $image ), $post->ID );

    } else {

        echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<img src="%s" alt="Placeholder" />', woocommerce_placeholder_img_src() ), $post->ID );

    }
?>

<?php do_action( 'woocommerce_product_thumbnails' ); ?>

</div>

4 个答案:

答案 0 :(得分:4)

要在不编辑任何主题文件的情况下执行此操作,只需将其添加到子主题中的插件或functions.php中:

add_filter('woocommerce_single_product_image_thumbnail_html', 'remove_featured_image', 10, 3);

function remove_featured_image($html, $attachment_id, $post_id) {
    $featured_image = get_post_thumbnail_id($post_id);
    if ($attachment_id != $featured_image) {
        return $html;
    }
    return '';
}

答案 1 :(得分:0)

您需要编辑单个产品图像功能。我不知道你是否有与我相同的插件。

你可以在woocommerce-hooks.php的第93行阻止引用add_action,它应该在plugin文件夹的根目录中或在yourtheme / woocommerce /...

//add_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
//add_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );

它应该删除它,如果没有,那么这样做:

在content-single-product.php中阻止或删除第31行:

//do_action( 'woocommerce_before_single_product_summary' );

修改

在CSS中为特色图像添加display:none。转到外观 - 编辑器并添加:

CSS:

.yith_magnifier_zoom_wrap{
    display: none !important;
}

答案 2 :(得分:0)

终于解决了。对于遇到类似问题的人,请将此代码添加到主题的函数文件中:

if ( ! empty( $attachment_ids ) ) array_unshift( $attachment_ids, get_post_thumbnail_id() );

if ( empty( $attachment_ids ) ) return;

这可能取决于您使用的主题。对代码进行必要的更改。

答案 3 :(得分:0)

我在functions.php中添加了这两个片段,以便从商店页面循环中删除徽章和精选图片。

// Remove product images from the shop loop remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );

// Remove sale badges from the shop loop remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 );