Удаление избранного изображения из отображения на странице отображения продукта

Я использую 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>

person dhruv    schedule 24.06.2013    source источник
comment
Вы купили тему с уже установленным woocommerce? Или добавить как плагин после установки темы?   -  person designtocode    schedule 24.06.2013
comment
я добавил тему после установки woocommerce .........   -  person dhruv    schedule 24.06.2013


Ответы (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 '';
}
person nullvariable    schedule 30.01.2014
comment
Не могли бы вы объяснить код? К чему здесь относятся 10 и 3? - person Samarth Agarwal; 12.08.2014
comment
@SamarthAgarwal 10 и 3 используются функцией add_filter. 10 - это порядок, в котором это вызывается, поскольку вы можете использовать несколько функций через один и тот же фильтр, а 3 - это количество переданных переменных, поскольку по умолчанию это одна. - person sirmdawg; 24.03.2015

Вам необходимо отредактировать функцию изображения одного продукта. Не знаю, есть ли у вас такой же плагин, как у меня.

Вы можете заблокировать цитату add_action для этого в строке 93 файла woocommerce-hooks.php, он должен находиться в корневом каталоге папки плагина или в yourtheme / woocommerce / ...

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

Его следует удалить, если этого не произошло, сделайте следующее:

Цитируйте или удалите строку 31 в content-single-product.php:

//do_action( 'woocommerce_before_single_product_summary' );

Изменить

Скорее добавьте display: none в CSS для избранного изображения. Перейдите в Внешний вид - Редактор и добавьте это:

CSS:

.yith_magnifier_zoom_wrap{
    display: none !important;
}
person designtocode    schedule 24.06.2013
comment
эй, я прокомментировал строку в content-single-product.php. но это удалило все мои изображения. мне просто нужно удалить избранное изображение. пожалуйста, проверьте страницу. - person dhruv; 24.06.2013
comment
Итак, что именно вы хотите сделать ... Удалить только большое изображение и сохранить другие изображения для продукта? - person designtocode; 24.06.2013
comment
Я хочу, чтобы он отображался на всех других страницах (виджеты, страница категорий и т. д.), но не на странице отображения продукта. - person dhruv; 24.06.2013
comment
Пожалуйста, укажите это в своем вопросе в будущем. Добавьте обратно do_action, но в файле хуков замените woocommerce_show_product_images на woocommerce_show_product_thumbnails. - person designtocode; 24.06.2013
comment
Попробуйте описанное выше, и мы увидим, что вы получите. - person designtocode; 24.06.2013
comment
Я поменял местами оба значения в файле хуков, но теперь страница вылетает .... не отображается вообще. - person dhruv; 24.06.2013
comment
Хорошо, извините, добавьте его, пожалуйста! Я пытаюсь найти исправление - person designtocode; 24.06.2013
comment
только что нашел эту страницу skyverge.com/blog/hide-woocommerce-product-image даже тогда этого не происходит. надеюсь, это поможет. - person dhruv; 24.06.2013
comment
Вы уже пробовали это действие remove_action, но оно не сработало. Итак, давайте использовать для этого CSS. Пожалуйста, посмотрите мою правку. - person designtocode; 24.06.2013
comment
но css полностью удаляет лупу ......... мне нужна лупа .... нужно удалить только одно изображение ...... skyverge.com/blog/hide-woocommerce-product-image/#comment-448 отображается этот комментарий это может быть сделано ........ - person dhruv; 24.06.2013
comment
Я нашел дополнительные ссылки wpquestions.com/question/show/id/4286 2-й stackoverflow.com/questions / 4337999 / я работаю над ними сейчас ... пожалуйста, посмотрите, подходят ли они вам - person dhruv; 24.06.2013
comment
Итак, вы хотите увеличить эти маленькие миниатюры? - person designtocode; 24.06.2013
comment
Возможно, измените add_action на remove_action для ('woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20); - person designtocode; 24.06.2013

Наконец решил это. Для тех, кто сталкивается с подобной проблемой, добавьте этот код в файл функций вашей темы:

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

if ( empty( $attachment_ids ) ) return;

Это может зависеть от используемой вами темы. Внесите необходимые изменения в код.

person dhruv    schedule 26.06.2013
comment
Это все еще работает с текущей версией WooCommerce? Какие-нибудь советы для тех, кто в настоящее время борется с этой проблемой? Спасибо. - person SAHM; 21.09.2015

Я добавил оба этих фрагмента в свой 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 );
person Uncle Iroh    schedule 16.11.2015