覆盖到WordPress的覆盖函数的过程是什么?
wc-template-functions.php 中的以下功能是我想要覆盖的功能之一:
function woocommerce_template_loop_product_link_close() {
echo '</a>';
}
它隐藏在 wc-template-hooks.php :
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
如果我编写以下代码,则该函数 unhooked :
function remove_default_wc_behaviour() {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
}
add_action( 'init', 'remove_default_wc_behaviour' );
但是,如果我想覆盖这个功能,即。实现我自己的功能而不是WooCommerce的默认功能?
我会首先调用remove_action()
,然后使用add_action()
挂钩我的函数,还是有一个程序可以简单地覆盖我的WooCommerce中挂钩的函数?
提前致谢
答案 0 :(得分:1)
第一个选项是正确的选项:在您的主要功能中,在 init
动作挂钩中,您可以添加替换的挂钩功能:
add_action( 'init', 'replace_default_wc_behaviour' );
function remove_default_wc_behaviour() {
// remove the default behavior
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
// Replace by your custom behavior
add_action( 'woocommerce_after_shop_loop_item', 'custom_WC_loop_product_link_close', 5 );
function custom_WC_loop_product_link_close() {
// Do your custumizations
// add the close tag
echo '</a>';
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。