snake-snake
@snake-snake
Начинающий PHP программист, Web-разработчик.

Не могу разобраться с подсветкой активного меню в Wordpress. Подключил свою тему, подключил меню, но активное меню не подсвечивается, что не так?

Мой functions.php:

<?php
register_nav_menus(
    array(
        'main'    => __( 'Меню', '' ),

    )
);

add_filter( 'category_link', function($a){
    return str_replace( 'category/', '', $a );
}, 99 );

class Main_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_lvl(&$output, $depth = 3, $args = array()) {
        if($depth == 0){
            $output .= "<ul class=\"dropdown-menu\" role=\"menu\">";
        }

        if($depth == 1){
            $output .= "<ul class=\"dropdown-menu\" role=\"menu\">";
        }
    }
    function end_lvl( &$output, $depth = 3, $args = array()) {

        $output .= "</ul>";
    }
}

function menu_set_dropdown( $sorted_menu_items, $args ) {
    $last_top = 0;
    foreach ( $sorted_menu_items as $key => $obj ) {
        // it is a top lv item?
        if ( 0 == $obj->menu_item_parent ) {
            // set the key of the parent
            $last_top = $key;
        } else {
            $sorted_menu_items[$last_top]->classes['dropdown'] = 'dropdown';
        }
    }
    return $sorted_menu_items;
}
add_filter( 'wp_nav_menu_objects', 'menu_set_dropdown', 10, 2 );

add_theme_support('custom-logo');

add_theme_support(
    'post-formats',
    array(
        'aside',
        'image',
        'video',
        'quote',
        'link',
        'gallery',
        'status',
        'audio',
        'chat',
    )
);


Код в файле heder.php
<div id="navbar-menu"  class="collapse navbar-collapse" >
                                <?php
                                wp_nav_menu( [
                                    'theme_location'  => 'main',
                                    'menu'            => 'main',
                                    'container'       => false,
                                    'container_class' => '',
                                    'container_id'    => '',
                                    'menu_class'      => 'nav navbar-nav ml-auto',
                                    'menu_id'         => '',
                                    'echo'            => true,
                                    'fallback_cb'     => 'wp_page_menu',
                                    'before'          => '',
                                    'after'           => '',
                                    'link_before'     => '',
                                    'link_after'      => '',
                                    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
                                    'depth'           => 3,
                                    'walker'          => new Main_Walker_Nav_Menu(),
                                    'add_li_class'    => 'nav-item'
                                ] );

                                ?>
</div>


Как <li class="active"> добавить в код который я выше написал? Что нужно дописать, не могу разобраться...
Нужно чтобы вот так было, в шаблоне html это работает:

<div id="navbar-menu" class="collapse navbar-collapse">
                    <ul class="nav navbar-nav ml-auto">
                        <li class="active"><a href="/">Главная</a></li>
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы