I want to add on templates/content-single-product.php:
• An opening<div>
before line 39
• A close</div>
after line 81.
将此模板复制到我的事件主题并进行自定义即可正常工作。
但是,有没有更好的方法可以在不复制模板的情况下做到这一点?
我以为我看到了一些方法可以将过滤器应用于 do_action( 'woocommerce_before_single_product_summary' );
和 do_action( 'woocommerce_after_single_product_summary' );
做类似的事情。
我只是想检查一下我的操作方式,是正确的方式。
我选择的方式是否正确?
谢谢。
最佳答案
在模板中 content-single-product.php
, 唯有打开你的 <div>
,是模板本身,正如您之前想要的那样(第 39 行):
<div itemscope itemtype="<?php echo woocommerce_get_product_schema(); ?>" id="product-<?php the_ID(); ?>" <?php post_class(); ?>>
因为如果你使用 woocommerce_before_single_product_summary
你的开放 <div>
将在 之后 现有 <div itemscope itemtype="…">
而不是之前。
最后,在编辑模板时,最好的方法是将其添加到模板中(就像您制作的那样。
但它在 中也应该有效 woocommerce_after_single_product
以任何优先级 Hook (因为还没有 Hook );这种方式例如:
function single_product_closing_div(){
echo '</div>';
}
add_action( 'woocommerce_after_single_product', 'single_product_closing_div', 10, 0 );
Conclusion: You have done it the right way, in the template directly.
关于php - WooCommerce - 在 content-single-product.php 模板中添加打开和关闭 div 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243247/