WordPress wp_nav_menu () настройка и фильтрация - PullRequest
1 голос
/ 10 июля 2019

Счастливого вечера, я пытался отфильтровать несколько элементов WordPress по умолчанию, используя wp_nav_menu(), и пытался добавить элемент в соответствии с моей таблицей стилей - пожалуйста, обратитесь к приведенным ниже подробным сведениям об использовании и ожидаемым.

Вызов функции:

<nav class="demo-navigation mdl-navigation mdl-color--blue-grey-800">
 <?php wp_nav_menu(); ?>
</nav>

Текущий результат:

<div class="menu-backend-menu-container">
        <ul id="menu-backend-menu" class="menu">
            <li id="menu-item-566" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-529 current_page_item menu-item-566">
                <a href="https://www.zony.ooo/users/data/" aria-current="page" data-ps2id-api="true">Data</a>
            </li>
            <li id="menu-item-571" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-571">
                <a href="http://www.zone.ooo/users/blog/" data-ps2id-api="true">Blog</a>
            </li>

Ожидаемый результат

<nav class="demo-navigation mdl-navigation mdl-color--blue-grey-800">
            <a class="mdl-navigation__link" href="https://www.zony.ooo/users/data/"><i class="mdl-color-text--blue-grey-400 material-icons" activerole="presentation">data</i>Data</a>
            <a class="mdl-navigation__link" href="https://www.zony.ooo/users/blog/"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">blog</i>Blog</a>
</nav>

Он попробовал следующие варианты, но закончился с неправильным результатом Любая помощь будет благодарна.

wp_nav_menu(array( 'menu'            => '',
        'container'       => 'a',
        'container_class' => '',
        'container_id'    => '',
        'menu_class'      => 'mdl-navigation__link',
        '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>',
        'item_spacing'    => 'preserve',
        'depth'           => 0,
        'walker'          => '',
        'theme_location'  => ''
                ));

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Для этого вы можете использовать меню Уокера.https://developer.wordpress.org/reference/classes/walker_nav_menu/. Для добавления классов вы можете добавить его в код ходунка.

0 голосов
/ 11 июля 2019

Удалить это:

<nav class="demo-navigation mdl-navigation mdl-color--blue-grey-800">
 <?php wp_nav_menu(); ?>
</nav>

Заменить на:

$defaults = array(
                'theme_location'  => 'YOUR MENU THEME LOCATION',
                'container'       => 'nav',
                'container_class' => 'demo-navigation mdl-navigation mdl-color--blue-grey-800',
                'echo'            => false,
                'fallback_cb'     => false,
                'items_wrap'      => '%3$s',
                'depth'           => 0,
            );
                echo wp_kses( wp_nav_menu( $defaults ), '<nav><a>' );

EDIT
Я только что увидел, что у вас есть i теги с атрибутами.
Вам придется использовать ходунки, как предлагалось ранее (ИЛИ JS или jQuery, но это другая область применения.)

...