我想对WooCommerce默认模板进行简单的更改。目前,图库显示在主图像正下方的左侧。我想让它显示在简短的简介描述的右侧。我设法通过将以下代码添加到functions.php文件中来实现此目的:
/*Relocate Product Gallery*/
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
add_action( 'woocommerce_before_single_product_summary', 'woocommerce-main-image', 20 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_show_product_thumbnails', 100 );
第一行从左侧删除图像组(主图像和图库)。 最后一行只将画廊放在我想要的位置。 中间线是问题。我希望主产品图像能够显示在应有的位置,而不是它会抛出错误。我是否使用错误的可变名称来调用主要产品图像?
答案 0 :(得分:2)
谢谢!来完成的。
/ ---移动产品库 /
remove_action(' woocommerce_product_thumbnails',' woocommerce_show_product_thumbnails',20); add_action(' woocommerce_single_product_summary',' woocommerce_show_product_thumbnails',100);
答案 1 :(得分:1)
简短的回答是没有名为woocommerce_main_image
的功能 - 您应该使用woocommerce_show_product_images
代替。如果你检查wc-template-hooks.php
,你会发现它默认为挂钩:
add_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
尚不清楚的原因是它尚未显示 - 也许您的模板未调用woocommerce_before_single_product_summary
操作。
您说您想要与缩略图分开显示主图像;我将给你一个冗长的解释,说明它是如何工作的,以便你有一个更好的理解:
查看wc-template-functions.php
- 您会发现woocommerce_show_product_images()
通过此行包含product-image.php
文件:
// wc-template-functions.php:716
wc_get_template( 'single-product/product-image.php' ); // Includes product-image.php
这显示主图像,有一个用于显示缩略图的钩子:
// product-image.php:43
do_action( 'woocommerce_product_thumbnails' ); // woocommerce_show_product_thumbnails() is hooked to this
您可以create your own copy of product-image.php
to override and remove the do_action()
或者您可以使用remove_action()
取消实际显示缩略图的功能。如果再次查看wc-template-hooks.php
,您会看到:
// wc-template-hooks.php:108
// This hooks the function to the action
add_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
这就是该行动的功能所在。您可以通过放置...
来删除它// This unhooks the function from the action
remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails' );
...进入您的主题functions.php
文件。要在其他位置显示缩略图,您只需使用模板中的woocommerce_show_product_thumbnails()
功能或wc_get_template( 'single-product/product-thumbnails.php' )
;前者只是后者的包装函数。
希望这是一个明确的解释,让你能够完成其余的工作。祝你好运。