gpt4 book ai didi

wordpress - remove_action() 在 WordPress 插件中不起作用

转载 作者:行者123 更新时间:2023-12-03 06:59:11 25 4
gpt4 key购买 nike

我是编写 WordPress 插件的新手。我正在尝试编写一个小插件来修改 woocommerce 插件在单个产品页面上显示图像的方式。具体来说,如果没有产品图像,请将包含图像的 div 设置为“display:none”,而不是在那里显示占位符图像。我使用的策略是使用 add_action 渲染我自己版本的 woocommerce 的product_image.php 模板,然后(尝试)使用remove_action 来阻止渲染原始的product_image.php 文件。 add_action 显然正在工作,因为我可以在 Firebug 中看到“display:none”div。但是,remove_action 没有成功。

这是我的代码:

$add_result = add_action( 'woocommerce_before_single_product_summary', 'eba_wc_show_product_images', 10);

function eba_wc_show_product_images() {
include( 'eba_product-image.php' );
}

$remove_result = remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 30);
echo "<hr/>result of add_result = " . $add_result . "<hr/>";
echo "<hr/>result of remove_result = " . $remove_result . "<hr/>";

woocommerce_before_single_product_summary Hook 的原始 add_action 的优先级为 20,因此我将 remove_action 的优先级设置为 30。

最后的两条调试语句显示add_action返回“1”,但remove_action结果为空。任何帮助将不胜感激。

最佳答案

我已经多次遇到这个问题了,我希望有人能告诉我我可以做到这一点:

$priority = has_action('action_name', 'function_name');
remove_action('action_name', 'function_name', $priority);

这使我不必对优先级进行实际硬编码,不同环境的优先级可能会有所不同。

关于wordpress - remove_action() 在 WordPress 插件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com