【发布时间】: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