我正在使用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>
答案 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 );