Видимый ярлык редактирования для меню WordPress, в котором используется навигатор nav walker

Я работаю над темой WordPress. В главном меню навигации мне пришлось использовать следующий код для применения стилей Bootstrap4 в пунктах меню ( отсюда ).

register_nav_menus( array( 'menu-1' => esc_html__( 'Primary', 'theme-textdomain' ), ) ); // Now, you can display the menu in your theme via below PHP code addition in the header.php file of your theme. <nav class="navbar navbar-expand-lg navbar-light bg-light"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-content" aria-controls="navbar-content" aria-expanded="false" aria-label="<?php esc_html_e( 'Toggle Navigation', 'theme-textdomain' ); ?>"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbar-content"> <?php wp_nav_menu( array( 'theme_location' => 'menu-1', 'menu_id' => 'primary-menu', 'container' => false, 'depth' => 2, 'menu_class' => 'navbar-nav ml-auto', 'walker' => new Bootstrap_NavWalker(), 'fallback_cb' => 'Bootstrap_NavWalker::fallback', ) ); ?> </div> </nav> 

Если я не использую nav-walker, ярлык редактирования отображается и работает для меню навигации.

Но, когда я использую nav-walker, кнопка уходит.

Я попытался добавить этот код в customiser

  $wp_customize->selective_refresh->add_partial('primarymenu', array( 'selector' => '#site-navigation', 'render_callback' => 'asensio_customize_partial_primarymenu', )); 

Это не влияет.

Solutions Collecting From Web of "Видимый ярлык редактирования для меню WordPress, в котором используется навигатор nav walker"

Nav menus in будет использовать выборочное обновление по умолчанию, когда они выводятся на страницу через wp_nav_menu() но с несколькими ограничениями на аргументы. Для точных требований к $args см. WP_Customize_Nav_Menus::filter_wp_nav_menu_args() .

Короче говоря, если вы используете пользовательский ходок, вам нужно передать его как строку имени класса, а не как экземпляр объекта. Например, вместо:

 wp_nav_menu( array( // ... 'walker' => new My_Custom_Walker(), ) ); 

Сделайте это вместо этого:

 wp_nav_menu( array( // ... 'walker' => 'My_Custom_Walker', ) );