1

我正在使用 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

4 回答 4

4

要在不编辑任何主题文件的情况下执行此操作,只需将其添加到子主题中的 plugin 或 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 '';
}
于 2014-01-30T16:23:31.587 回答
0

您需要编辑单品图片功能。不知道你有没有跟我一样的插件。

您可以在 woocommerce-hooks.php 的第 93 行为此阻止引用 add_action,它应该位于插件文件夹的根目录或 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;
}
于 2013-06-24T15:37:31.120 回答
0

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

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

if ( empty( $attachment_ids ) ) return;

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

于 2013-06-26T12:43:20.570 回答
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 );
于 2015-11-16T10:35:07.473 回答