我有一个来自Storefront的子主题,并且为主页和其他页面运行了自定义页面模板,而没有任何问题。
我正在为Woocommerce页面构建自定义布局,并在文件中包含自定义代码的单个产品页面上使用content-single-product.php
,例如:
<div class="wc-product-images">
<?php do_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images'); ?>
</div>
<div class="wc-product-description">
<?php the_content(); ?>
</div>
问题1 :我是否在模板文件中使用do_action()
来正确调用Woocommerce内容?我有特定的布局,并且无法按照默认文件遵循挂钩布局
问题2 :当我打电话时:
<?php
do_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products' );
?>
我获得了相关产品的产品说明,实际上只需要建立一个包含相关产品的div。
在没有说明的情况下如何正确调用呢?
感谢您的帮助。
答案 0 :(得分:1)
您感到困惑,原始的do_action( 'woocommerce_before_single_product_summary' )
启用woocommerce content-single-product.php
模板中的入口点,其中add_action()
用于使用以下功能钩住其他模板:
woocommerce_show_product_sale_flash()
(挂钩优先级为10) woocommerce_show_product_images()
(挂钩优先级为20) 因此,如果您只想在自定义模板中启用产品图片,则必须创建自己的挂钩:
<div class="wc-product-images">
<?php do_action( 'woocommerce_before_single_product_summary_custom' ); ?>
</div>
<div class="wc-product-description">
<?php the_content(); ?>
</div>
然后,将其添加到活动子主题(或活动主题)的函数.php文件中:
add_action( 'woocommerce_before_single_product_summary_custom', 'woocommerce_show_product_images', 20 );
它应该按预期工作。
但是您可以在自定义模板中使用原始钩子,如果不需要任何其他钩子自定义项……在这种情况下,您将仅具有以下内容:
<div class="wc-product-images">
<?php do_action( 'woocommerce_before_single_product_summary' ); ?>
</div>
<div class="wc-product-description">
<?php the_content(); ?>
</div>
添加:与您的评论相关(关于相关产品)。
要在自定义模板中启用相关产品,请将其添加到 (带有自定义钩子) :
<div class="wc-product-related">
<?php do_action( 'custom_after_single_product_summary' ); ?>
</div>
然后,将其添加到活动子主题(或活动主题)的function.php文件中:
add_action( 'custom_after_single_product_summary', 'woocommerce_output_related_products', 20 );
应该可以。