如果仅向产品 WooCommerce 添加一张图像,如何删除产品缩略图

问题描述 投票:0回答:2

很好,我想知道我是否可以从单个产品页面中删除产品缩略图,因为产品只有一张图像(即只有产品图像)。这样,当用户查看只有一张图像的产品时,他们不需要看到缩略图但带有产品图片和产品图库图片的产品,可以显示缩略图。

有没有办法实现这个目标?

我已经尝试了以下方法,但对我不起作用(尽管代码是完全删除缩略图);

function remove_gallery_thumbnail_images() {
    if ( is_product() ) {
        remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
    }
}
add_action('loop_start', 'remove_gallery_thumbnail_images');

我怎样才能实现这个目标?如果产品只有一张图像,则禁用缩略图,但如果产品有多个图像,则显示缩略图。

非常欢迎任何帮助。

php wordpress image woocommerce product
2个回答
3
投票

通常,当图库中没有缩略图时,woocommerce 不会显示图库。

根据您的情况,您可以尝试使用以下方法:

add_action( 'woocommerce_product_thumbnails', 'enable_gallery_for_multiple_thumbnails_only', 5 );
function enable_gallery_for_multiple_thumbnails_only() {
    global $product;

    if( ! is_a($product, 'WC_Product') ) {
        $product = wc_get_product( get_the_id() );
    }

    if( empty( $product->get_gallery_image_ids() ) ) {
        remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
    }
}

或者,如果图像作为缩略图包含在图库中,您可以在功能中替换:

if( empty( $product->get_gallery_image_ids() ) ) {

通过以下行:

if( sizeof( $product->get_gallery_image_ids() ) == 1 ) {

代码位于活动子主题(或活动主题)的functions.php 文件中。已测试并有效。


您还可以使用内联 CSS 隐藏图库:

add_action( 'woocommerce_before_single_product_summary', 'enable_gallery_for_multiple_thumbnails_only', 5 );
function enable_gallery_for_multiple_thumbnails_only() {
    global $product;

    if( ! is_a($product, 'WC_Product') ) {
        $product = wc_get_product( get_the_id() );
    }

    if( empty( $product->get_gallery_image_ids() ) ) {
        echo '<style> ol.flex-control-thumbs { display:none; } </style>';
    }
}

或者,如果图像作为缩略图包含在图库中,您可以在功能中替换:

if( empty( $product->get_gallery_image_ids() ) ) {

通过以下行:

if( sizeof( $product->get_gallery_image_ids() ) == 1 ) {

代码位于活动子主题(或活动主题)的functions.php 文件中。已测试并有效。

所有这些都适用于不进行相关自定义的主题。


0
投票

我一直在寻找如何将手机中的缩略图更改为黑点?等了这么久,希望有人能分享一下代码,谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.