Woocommerce从图像中删除缩放类

时间:2014-10-28 13:28:41

标签: php wordpress function woocommerce hook

如何在没有真正进入php文件并手动删除类的情况下从woocommerce中的图像中删除缩放类?跟钩子一样吗?

我找到了它的过滤器

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 );

但我不知道如何覆盖这个?变焦在这里很烦人。

1 个答案:

答案 0 :(得分:2)

您可以通过过滤器进行调整。对于您在WordPress中看到的任何类型的过滤器,这都是相同的方法,您将发回您想要使用的值。我想如果你想尝试阅读更多内容,我写了一篇关于WordPress filters的非常好的文章。

但要回答您的问题,您可以执行以下操作,这将保持图像链接不变,但删除缩放类:

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 );