Как я могу удалить класс zoom из изображений в woocommerce, не заходя в php файлы и не удаляя класс вручную? Как с крючками?
Я нашел фильтр для него
apply_filters( 'woocommerce_single_product_image_html', sprintf( '<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s" data-rel="prettyPhoto' . $gallery . '">%s</a>', $image_link, $image_title, $image ), $post->ID );
Но я не знаю, как это переопределить? Зум довольно раздражает здесь.
Вы делаете настройку через фильтр. Это тот же подход для любого вида фильтра, который вы видите в WordPress, вы отправляете обратно значение, которое хотите использовать вместо этого. Я думаю, что написал довольно хорошую статью о Фильтры WordPress если вы хотите попробовать прочитать больше.
Но чтобы ответить на ваш вопрос, вы можете сделать следующее, что бы сохранить ссылку на изображение без изменений, но удалить класс увеличения:
function so_26609604_single_product_image_html( $html, $post_id ){
$image_title = esc_attr( get_the_title( get_post_thumbnail_id() ) );
$image_link = wp_get_attachment_url( get_post_thumbnail_id() );
$image = get_the_post_thumbnail( $post_id, 'shop_single', array( 'title' => $image_title ) );
$html = sprintf( '<a href="%s" itemprop="image" class="woocommerce-main-image" title="%s">%s</a>', $image_link, $image_title, $image );
return $html;
}
add_filter( 'woocommerce_single_product_image_html', 'so_26609604_single_product_image_html', 10, 2 );
Или вы можете полностью удалить ссылку и отобразить только изображение:
function so_26609604_single_product_image_html_alt( $html, $post_id ){
$image_title = esc_attr( get_the_title( get_post_thumbnail_id() ) );
$image = get_the_post_thumbnail( $post_id, 'shop_single', array( 'title' => $image_title ) );
return $image;
}
add_filter( 'woocommerce_single_product_image_html', 'so_26609604_single_product_image_html_alt', 10, 2 );
Других решений пока нет …