WooCommerce - 在content-single-product.php模板中添加打开和关闭div标签

时间:2016-08-31 07:24:39

标签: php wordpress woocommerce product hook-woocommerce

  

我想添加templates/content-single-product.php
  第39行之前的开头 <div>   第81行后关闭 </div>

将此模板复制到我的活动主题并使自定义工作正常。

但是,如果没有复制模板,有更好的方法吗?

我以为我已经看到了一些方法可以将过滤器应用到do_action( 'woocommerce_before_single_product_summary' );do_action( 'woocommerce_after_single_product_summary' );来做类似的事情。

我只是想检查一下我的方式,是正确的方法

我选择的方式是正确的吗?

感谢。

2 个答案:

答案 0 :(得分:2)

在模板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 钩子中以任何类型的优先级(因为没有任何东西已经挂钩);这种方式例如:

function single_product_closing_div(){
    echo '</div>';
}
add_action( 'woocommerce_after_single_product', 'single_product_closing_div', 10, 0 );
  

结论:您已经在模板中以正确的方式完成了这项工作。

答案 1 :(得分:1)

你可以通过为woocommerce_before_single_product_summarywoocommerce_after_single_product_summary添加两个钩子来实现这一点,这样它们就会像这样

  

ADD_ACTION(&#39; woocommerce_before_single_product_summary&#39;&#39; your_function_name&#39;,1);   ADD_ACTION(&#39; woocommerce_after_single_product_summary&#39;&#39; another_function_name&#39; 99);   function your_function_name(){echo&#34;&#34 ;; }   function another_function_name(){echo&#34;&#34 ;; }