WooCommerce - 在 content-single-product.php 模板中添加打开和关闭 div 标签
WooCommerce - Adding open and close div tags in content-single-product.php template
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' );
应用过滤器来做类似的事情。
我只是想检查一下我的做法,是正确的方法。
我选择的方式对吗?
谢谢。
您可以通过为 woocommerce_before_single_product_summary
和 woocommerce_after_single_product_summary
添加两个挂钩来做到这一点,因此它们看起来像这样
add_action('woocommerce_before_single_product_summary','your_function_name',1);
add_action('woocommerce_after_single_product_summary','another_function_name',99);
function your_function_name(){echo ""; }
function another_function_name(){echo ""; }
在模板 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="…">
而不是 before.
最后,在编辑模板时,最好的方法是将其添加到模板中(就像您制作的那样。
但它也应该在 woocommerce_after_single_product
挂钩中工作,具有任何优先级(因为还没有挂钩);这样例如:
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.
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' );
应用过滤器来做类似的事情。
我只是想检查一下我的做法,是正确的方法。
我选择的方式对吗?
谢谢。
您可以通过为 woocommerce_before_single_product_summary
和 woocommerce_after_single_product_summary
添加两个挂钩来做到这一点,因此它们看起来像这样
add_action('woocommerce_before_single_product_summary','your_function_name',1); add_action('woocommerce_after_single_product_summary','another_function_name',99); function your_function_name(){echo ""; } function another_function_name(){echo ""; }
在模板 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="…">
而不是 before.
最后,在编辑模板时,最好的方法是将其添加到模板中(就像您制作的那样。
但它也应该在 woocommerce_after_single_product
挂钩中工作,具有任何优先级(因为还没有挂钩);这样例如:
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.