我已经开始学习如何使用WooCommerce创建模板,我遇到了一个小问题。例如,在Woocommerce插件的php文件content-single-product.php中,我有这样的字符串:
<?php
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
do_action( 'woocommerce_single_product_summary' );
?>
例如,当我想编辑这个(删除一些字段并更改结构)时,我尝试删除字符串:
do_action('woocommerce_single_product_summary');
然后这样写:
<?php
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
//do_action( 'woocommerce_single_product_summary' );
do_action('woocommerce_template_single_title');
?>
你能告诉我为什么这不起作用吗?
怎样才是正确的编辑方式呢?
谢谢
1条答案
按热度按时间atmip9wb1#
首先在参考下面你会发现如何override properly woocommerce templates via a theme(避免编辑插件模板).
在你的第一段代码中,你可以看到**
woocommerce_single_product_summary
hook**,你已经在这个hook location中使用**do_action()
WordPress函数按顺序排列了所有不同的模板@hooked
**:因此,在您的自定义代码(第二个代码片段)中,您刚刚将hook替换为hooked template slug *(即NOTa hook)*,并且将NOT用作入口点action hook**。请参阅list of WooCommerce actions and filters existing hooks答案底部的参考资料...
后果:如果用模板slug替换hook,注解列表代码中其他所有hooked模板(以 @hooked 开头)都将丢失。
有关模板中使用的钩子,请参阅此有用的WooCommerce Visual Hook Guide
说明 (操作方法):
如何操作-具体示例:
您需要在**
woocommerce_single_product_summary
钩子中定制woocommerce_template_single_title
钩子模板**。然后需要编辑对应的**
woocommerce_single_product_summary
钩子 *title.php
位于single-product
(子文件夹)...最后也不是那么复杂,一旦我们理解了模板文件的结构和模板中的钩子。优先级编号,给出挂接模板的顺序:开头小,结尾大……
标签:Hooks and their hooked functions execution queue in Wordpress and Woocommerce
其他方式:
您也可以使用所有现有的模板挂钩来针对非常特定的更改或自定义,自定义函数位于您的活动子主题(或主题)的**
function.php
**文件或任何插件文件中。add_action()
WordPress函数示例:此函数的优先级编号为**
15
,将在product price
和product short description
**之间显示 “This is my custom action function” 字符串文本...此钩子函数的可选参数:
·模板slug (string)。
·优先级 (int)。
参考文献: