Изменить порядок элементов в заголовке темы магазина

Я использую дочернюю тему WordPress, тему WooCommerce Storefront.

Подключенные к заголовку магазина функции упорядочены следующим образом:

<?php
/**
* Functions hooked into storefront_header action
*
* @hooked storefront_skip_links                       - 0
* @hooked storefront_social_icons                     - 10
* @hooked storefront_site_branding                    - 20
* @hooked storefront_secondary_navigation             - 30
* @hooked storefront_product_search                   - 40
* @hooked storefront_primary_navigation_wrapper       - 42
* @hooked storefront_primary_navigation               - 50
* @hooked storefront_header_cart                      - 60
* @hooked storefront_primary_navigation_wrapper_close - 68
*/
do_action( 'storefront_header' ); ?>

Я хотел бы изменить порядок, чтобы product_search предшествует secondary_navigation,

Я просматривал файлы магазина и не могу найти, где установлен этот порядок, только элементы в отдельности.

Может кто-нибудь, пожалуйста, помогите мне подключить или сделать то, что необходимо, чтобы изменить заказ, пожалуйста?

3

Решение

В предложении @loictheaztec не было add_action, как показано ниже —

add_action( 'init' , 'add_and_remove' , 15 );
function mh_add_and_remove() {
remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );
}
4

Другие решения

Для этого вам нужно будет сначала удалить его с помощью remove_action() функции, а затем вы подключите его снова с add_action() функция, меняющая приоритет с 40 на 25.

Приоритет 25 расположен между:
@hooked storefront_site_branding — приоритет 20
а также @hooked storefront_secondary_navigation — приоритет 30

Вставьте этот фрагмент кода в файл function.php вашей активной папки тем (или, что лучше, в вашей папке активных дочерних тем):

remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );
1

По вопросам рекламы [email protected]