Как отобразить один хук WordPress из разных частей страницы

В шаблоне страницы одного продукта есть хук WooCommerce, который выполняет 7 функций, отображающих заголовок, рейтинг, цену, кнопки, описания и т. д.:

<?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.

Есть ли функция WordPress, которая фильтрует или ограничивает поведение хуков WooCommerce?

Спасибо


person LayoutPH    schedule 23.05.2016    source источник
comment
@ankur-bhadania, сэр, есть ли функция для этого?   -  person LayoutPH    schedule 23.05.2016


Ответы (1)


Для названия вашего продукта на отдельной странице продукта вы можете сначала удалить его с помощью remove_action следующим образом:

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

Затем вы можете снова добавить его вверху страницы с помощью:

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

Or

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

Вы должны проверить, какой из них лучше для вас.

Итак, вы знаете, как удалить перехваченную функцию с помощью remove_action() и снова перехватить ее в любом месте шаблонов WooCommerce с помощью add_action().

Когда вы используете remove_action для перехваченной функции, вам нужно будет использовать тот же приоритет.
В хуке woocommerce_single_product_summary функция woocommerce_template_single_add_to_cart подключается с приоритетом 30, поэтому при использовании remove_action() вам нужно будет использовать такой же приоритет.

Приоритет: чем выше приоритет, тем ниже число (для add_action()).

person LoicTheAztec    schedule 23.05.2016
comment
@LayoutPH Я немного обновил свой ответ для вас. Добро пожаловать :) - person LoicTheAztec; 23.05.2016