Добавить классы по пользовательской навигации в Wordpress - PullRequest
0 голосов
/ 03 января 2019

Я создал вторую пользовательскую навигацию в Wordpress, чтобы создать меню верхней панели.Но мне нужно добавить классы для элементов ul, li и a.

Мой код в functions.php выглядит следующим образом:

function secondary_navigation() {
    register_nav_menu('secondary-navigation',__( 'Top bar navigation' ));
}
add_action( 'init', 'secondary_navigation' );

Код в моем шаблоне выглядит следующим образом:

    <?php
                    wp_nav_menu( array( 
                        'theme_location' => 'secondary-navigation', 
                        'menu_class' => 'navigation__list',
                        'add_li_class' => 'navigation__list__item',
                    )
    ); ?>

'menu_class' => 'navigation__list' также создает div вокруг моего ul вместо добавления класса к элементу ul.

У меня также есть основная навигация, где я добавил классы для элементов выше, и это отлично работает.Чтобы заставить его работать для этой навигации Я создал две функции:

/*
 *  Add classes to the navigation li item
 */
function add_additional_class_on_li($classes, $item, $args) {
    if($args->add_li_class) {
        $classes[] = $args->add_li_class;
    }
    return $classes;
}
add_filter('nav_menu_css_class', 'add_additional_class_on_li', 1, 3);


/*
 *  Add classes to the navigation a link
 */
function add_menuclass($ulclass) {
    return preg_replace('/<a /', '<a class="navigation__list__item__link"', $ulclass);
}
add_filter('wp_nav_menu','add_menuclass');

Моя основная навигация в моем шаблоне выглядит так:

    <?php wp_nav_menu(
                    array(
                        'theme_location'  => 'primary',
                        'container_id'    => 'navbarNavDropdown',
                        'menu_class'      => 'navigation__list',
                        'fallback_cb'     => '',
                        'menu_id'         => 'main-menu',
                        'add_li_class'  => 'navigation__list__item',
                        'depth'           => 2,
                    )
    ); ?>

Так как я могу заставить эти две функции (которые работают для основной навигации) работать для моей пользовательской дополнительной навигации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...