【问题标题】:woocommerce show/get product thumbnailswoocommerce 显示/获取产品缩略图
【发布时间】:2017-05-24 18:42:40
【问题描述】:

我正在尝试在基于引导框架构建的自定义主题中实现 wooCommerce(因为我对事物的外观很挑剔)所以我想做的是重新定位 wooCommerce 产品缩略图库图像。我知道通过 wooCommerce 提供的各种功能和挂钩,例如 wc-template-hooks.php 中列出的功能和挂钩,除了在我的特殊情况下它们工作得很好。我使用 "woocommerce_before_main_content""woocommerce_after_main_content"hooks 将产品信息包装在我的引导框架中,就像这样......

...
<div class="row">
  <div class="col-md-1"> *where I want my gallery images to go* </div>
  <div class="col-md-7 *woocommerce-main"> where my woocommerce product is loaded* </div>
  <div class="col-md-4"> *some other product info is loaded here* </div>
</div>...

我遇到的是,在调用/加载产品部分之前,我似乎无法使用任何产品挂钩或函数(这当然很有意义),但我需要能够加载产品图库图片进入第一列"col-md-1"...所以我的问题是...如何在所有内容完成加载之前获取产品图库图片,或者我可以在所有内容加载后追溯处理进入第一列的内容?

谢谢

编辑:在我的functions.php中完成woocommerce钩子

<?php
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );

add_action('woocommerce_before_main_content', 'underwire_wrapper_start', 10);
add_action('woocommerce_after_main_content', 'underwire_wrapper_end', 10);

function underwire_wrapper_start() {
  echo '<div class="row">';
  if ( is_product() ) {
      echo '<div class="col-md-1">';
      echo woocommerce_get_product_thumbnail();
      //woocommerce_show_product_thumbnails();
    echo '</div>';
    echo '<div class="col-md-7 woocommerce-main">';
  } else {
    echo '<div class="col-sm-12 woocommerce-main">';
  }
}

function underwire_wrapper_end() {
  if ( is_product() ) {
    echo '</div> <!-- /.woocommerce-main --><div class="col-md-4">';
    woocommerce_output_product_data_tabs();
    //woocommerce_output_related_products();
    echo '</div></div>';
  } else {
    echo '</div> <!-- /.woocommerce-main --></div>';
  }
}
?>

【问题讨论】:

  • 你能发布你的钩子完整代码吗?该产品实际上是一个帖子类型,因此在加载页面时就知道了。
  • 完成。您将看到 //woocommerce_show_product_thumbnails(); 行在哪里被注释掉了。其他一切都在顺利进行。回声 woocommerce_get_product_thumbnail();能够毫无问题地显示产品特色图片。
  • 您可以改为更改模板覆盖。
  • 我熟悉模板覆盖,但遇到了同样的问题。在页面中的某个点之前,我无法调用该函数来加载产品库图像。看来我需要调用的函数尚未定义或加载,这似乎是问题的症结所在。还有什么想法吗?

标签: php wordpress twitter-bootstrap woocommerce hook-woocommerce


【解决方案1】:

2020 回答: 这是一篇旧帖子,但对于阅读此文的任何人,我相信您可以挂钩到产品页面的任何部分,然后在您的自定义挂钩函数中,使用类似这样的东西使用 $product 对象访问照片 ID:

// priority number at the end can be whatever you want
add_action('action_you_want_to_hook_into', 'your_custom_function', 10);

function your_custom_function() {
    global $product;
    image_ids[] = $product->get_gallery_image_ids();
    // do something with image_ids[]
}

希望这可以帮助任何在这里绊倒的人!

这是useful list of functions you can call on $product

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-07
    • 2019-01-24
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多