brutto333
@brutto333

Как создать меню в WP?

Добрый день, как перенести правильно в WP меню по ангалогии HTML вертски. Не могу повесить классы на ul, li , a.

<?php wp_nav_menu( array(
                                        'theme_location' => 'primary_menu',
                                        'container'  => '',
                                        'items_wrap' => '%3$s',
                                        'list_item_class' => 'header_nav-item',
                                        'link_class' => 'nav-link',
                                    )
                                );
                            ?>

<li class="header_nav-item">
                        <a href="/" class="nav-link">
                            <span class="nav-title">Services</span>
                        </a>
                        <div class="hover-submenu">
                            <a href="" class="submenu-link">W</a>
                            <a href="" class="submenu-link">M</a>
                            <a href="" class="submenu-link">B</a>
                            <a href="" class="submenu-link">U</a>
                            <a href="" class="submenu-link">E</a>
                            <a href="" class="submenu-link">I</a>
                        </div>
                    </li>
                    <li class="header_nav-item">
                        <a href="works.html" class="nav-link">
                            <span class="nav-title">Works</span>
                        </a>
                    </li>
                    <li class="header_nav-item">
                        <a href="company.html" class="nav-link">
                            <span class="nav-title">Company</span>
                        </a>
                    </li>
                </ul>
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 2
AntonLitvinenko
@AntonLitvinenko
HTML coder
Есть несколько подходов как раздать нужные классы в меню
1. wp_nav_menu позволяет дать классы обретке над меню, самому меню, добавить разметку перед и после ссылки с помощью настроек after и before.
2. Добавить классы к элементам Li можно таким образом
https://stackoverflow.com/questions/14464505/how-t...
3. Также это можно сделать через фильтр
https://developer.wordpress.org/reference/hooks/na...
4. Использовать класс walker_nav_menu, но тут нужны навыки пхп, зато он позволяет делать почти что угодно
https://wp-kama.ru/function/walker_nav_menu
https://misha.agency/course/menu-wordpress
https://dimox.name/bem-wp-nav-menu-walker/

5. Переверстать меню используя стандартные классы вордпресса и впредь пользоваться этим кодом как заготовкой
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Дополню ответ Антон Литвиненко. Если у вас полностью кастомная верстка, то проще всего получить массив элементов с помощью wp_get_nav_menu_object() и вывести произвольным циклом. Получить можно по названию:

$menu_name = 'Menu';
$nav_menu = wp_get_nav_menu_object( $menu_name );

if ( !$nav_menu ) {
	$menu_id = wp_create_nav_menu( $menu_name );
} else {
	$menu_id = $nav_menu->term_id;
}

// получаем элементы меню
$nav_menu_items = wp_get_nav_menu_items( $menu_id );


По зарегистрированной локации:
$menu_location = 'primary';
$locations = get_nav_menu_locations();

if ( isset( $locations[$menu_location] ) ) {
	$nav_menu_items = wp_get_nav_menu_items( $locations[$menu_location] );
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы