Изменить порядок содержимого заголовка Woocommerce Storefront с помощью действия "удалить и добавить"
Я использую дочернюю тему Storefront. Я отредактировал копию header.php
файл и я добавляю в этой части после удаления панели навигации дополнительный div:
<header id="masthead" class="site-header" role="banner" style="<?php storefront_header_styles(); ?>">
<div class="col-full">
<?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
*/
**remove_action( 'storefront_header', 'storefront_primary_navigation', 50 );**
**add_action('storefront_header', 'storefront_primary_navigation', 51);**
**add_action('storefront_header', 'jk_storefront_header_content', 50);**
do_action( 'storefront_header' );
?>
</div>
</header><!-- #masthead -->
Это кажется правильным, но вместо панели навигации, которая должна быть удалена и заменена, у меня есть старая панель навигации - дополнительный div и другая навигация, что означает, что панель навигации никогда не была удалена...
Как это можно исправить?
1 ответ
Вам не нужно переопределять header.php
в твоей детской теме…
Правильно использовать remove_action()
, вам нужно встроить его в пользовательскую функцию, подключенную init
Действие Хук таким образом:
add_action('init', 'replace_storefront_primary_navigation' );
function replace_storefront_primary_navigation(){
remove_action( 'storefront_header', 'storefront_primary_navigation', 50 );
add_action('storefront_header', 'jk_storefront_header_content', 50);
}
function jk_storefront_header_content(){
// your custom navigation code goes here
echo '<span style="display:inline-block; padding:10px; border:solid 1px grey;">My custom mega menu goes Here</span>';
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).
Протестировано и работает на тему WooCommerce Storefront.