使用ACF自定义字段替换WooCommerce的产品图片。

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

我试图使用钩子和高级自定义字段来替换WooCommerce商店页面上的图片,但有一些东西我无法实现。

  • 我想在我的商店页面中调用的图片是我放在我的自定义内容-单个产品.php模板中的图片,使用ACF。
  • 下面是我在我的商店页面中使用的代码的副本 content-single-product.php 引入图片'prod_hero_second',我想把它作为我的商店页面的缩略图。

    <?php 
    $image = get_field('prod_hero_second');
    if( !empty( $image ) ): ?>
        <img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" 
    if( $image ): ?>
    <p class="hero-caption"><?php echo esc_html($image['caption']); ?></p>
    <?php endif; ?>
    

我怎样才能唤起这个ACF prod_hero_second 如何把图片放到我的商店页面上?

我试着把下面的代码放在我的function.php上,但是根本没用,我的商店页面上没有出现图片。

function replacing_template_loop_product_thumbnail() {
    // Remove product images from the shop loop
    remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
    // Adding something instead
    function wc_template_loop_product_replaced_thumb() {
        $image-> get_field ('prod_hero_second');
        echo $image;
    }
    add_action( 'woocommerce_before_shop_loop_item_title', 'wc_template_loop_product_replaced_thumb', 10 );
}
add_action( 'woocommerce_init', 'replacing_template_loop_product_thumbnail');

但它不工作。

php wordpress image woocommerce advanced-custom-fields
2个回答
0
投票

看来我解决了这个问题.我的目标是覆盖WooCommerce的产品图像,默认情况下,在商店页面中使用,在产品 "网格 "中使用,其大小被定义为woocommerce_thumbnail我的目的是使用一个不同的图像从我的自定义单产品.php模板,图像命名为字段 "prod_hero_second"。

我发现这段代码在我的functions.php中可以覆盖默认的产品图片,并使用我自定义的'prod_hero_second'图片作为woocommerce_thumbnail。

echo '<img src="'.get_field('prod_hero_second', $product_id)['url'].'" class="woocommerce_thumbnail">';

我不是很熟练,无法评估这段代码是否是最正确和有效的,但我希望它能作为一个有效的解决方案。

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