如何从页面的不同部分显示单个 WordPress 挂钩

How to display a single WordPress hook from different parts of a page

单个产品页面模板中有一个 WooCommerce 挂钩,它执行显示标题、评级、价格、按钮、描述等 7 个功能......:[=​​13=]

<?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' );
?>

如何使用 woocommerce_template_single_title 在页面顶部显示产品标题?

然后我想使用 woocommerce_template_single_title 在侧边栏 woocommerce 模板中显示此标题,例如在页面中间。

我正在自定义我的 WooCommerce 主题,我需要更改一些 WooCommerce 挂钩行为。

是否有过滤或限制 WooCommerce 挂钩行为的 WordPress 功能?

谢谢

对于单个产品页面中的产品标题,您可以先使用 remove_action 将其删除,方法如下:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );

然后您可以在页面顶部再次添加它:

add_action( 'woocommerce_before_single_product', 'woocommerce_template_single_title', 5);

add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_single_title', 5);

你得试试哪个更适合你。

So know you know how to remove hooked function with remove_action() and hook it again anywhere in WooCommerce templates with add_action().

When you use remove_action for an hooked function, you will need to use same priority.
In woocommerce_single_product_summary hook woocommerce_template_single_add_to_cart function is hooked with a priority of 30, so when using remove_action() you will need to use same priority.

Priority: Higher is the priority, lower is the number (for add_action()).