【发布时间】:2015-01-06 08:08:00
【问题描述】:
使用 WooCommerce 构建电子商务网站。我正在尝试通过从默认钩子中删除函数并将它们插入另一个函数来修改主题布局(因此它们出现在页面的不同部分。
我已成功移除一个函数并将其插入另一个钩子...
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40);
add_action('woocommerce_below_single_product_display', 'woocommerce_template_single_meta', 40);
找到了,除了我不明白的是我必须使用优先级标签40,更高的它不起作用,更少的它不起作用?我认为删除操作优先级必须是一个更高的数字,以便在创建操作后调用它。
现在页面上的一个元素我无法弄清楚它是如何插入到主题中的,使用另一个绅士的函数列出了我能够隔离它的所有钩子和函数...
function list_hooked_functions($tag='woocommerce_single_product_summary'){
global $wp_filter;
if ($tag) {
$hook[$tag]=$wp_filter[$tag];
if (!is_array($hook[$tag])) {
trigger_error("Nothing found for '$tag' hook", E_USER_WARNING);
return;
}
}
else {
$hook=$wp_filter;
ksort($hook);
}
echo '<pre>';
foreach($hook as $tag => $priority){
echo "<br />>>>>>\t<strong>$tag</strong><br />";
ksort($priority);
foreach($priority as $priority => $function){
echo $priority;
foreach($function as $name => $properties) echo "\t$name<br />";
}
}
echo '</pre>';
return;
}
这个函数返回的是……
我隔离了需要从钩子中删除的功能。所以我的functions.php中有这个
add_action('init', function(){
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40);
remove_action('woocommerce_single_product_summary', 'venedor_single_product_links', 3135);
add_action('woocommerce_below_single_product_display', 'woocommerce_template_single_meta', 40);
add_action('woocommerce_below_single_product_display', 'venedor_single_product_links', 40);
}, 9000);
我只是无法删除 venedor_single_product_links 功能。我试过提高优先级,降低它,没有它。改为使用“wp_head”操作。
任何人都可以建议为什么这可能不起作用以及我可以尝试的其他任何东西...
感谢您的宝贵时间。
【问题讨论】:
标签: wordpress wordpress-theming woocommerce