WP NAV MENU – Выпадающее меню всегда отображается

Вопрос или проблема

У меня есть проблемы с корректной работой wp_nav_menu. Это первый раз, когда я с этим работаю, и в большинстве случаев все сработало. Единственная проблема, с которой я сталкиваюсь, – это функциональность выпадающих меню. Все страницы отображаются правильно в соответствующем месте (основная навигация), но “выталкивающиеся” или выпадающие подменю всегда появляются.

Я, конечно, зарегистрировал меню и разместил часть wp_nav_menu в навигации. Мое предположение, что я не добавил поддержку для выпадающих меню, чтобы они действительно были выпадающими меню?

Также я хотел бы отметить, что это пользовательская тема. Я построил ее с нуля. Она также находится в тестовой среде, и будет сложно показать вам живой пример. По этой причине я прикрепил скриншот.

wp_nav_menu( array(
     'menu' => 'Основная навигация',
     'container_class' => 'primaryNav',
     'depth'           => 2,
     'fallback_cb' => 'none',
     'theme_location' => 'Основная навигация',
));

register_nav_menu( 'Основная навигация', 'Основная навигация' );

add_theme_support( 'menus' );

Я столкнулся с двумя возможностями. Я видел упоминания о “walker”, в чем я почти ничего не понимаю. ИЛИ, возможно, все так просто, как добавить немного jQuery, чтобы они работали? У меня создается впечатление, что функциональность уже должна быть?

Заранее спасибо за любую помощь.

Уилл

Вам нужно изменить файл style.css. Что вам следует сделать, так это взглянуть на ваш исходный код и увидеть структуру, которую вы создали для вашего меню, а затем изменить меню соответственно. В интернете много учебных пособий, вам просто нужно вбить в Google “учебник по css меню” или “пример css меню”, и вы найдете решение вашей проблемы.

Ответ или решение

Чтобы решить проблему с всегда видимыми выпадающими меню в вашей пользовательской теме WordPress, нужно убедиться, что вы правильно настроили стили и функциональность выпадающих меню. Давайте рассмотрим некоторые шаги, которые помогут вам устранить эту проблему.

1. Проверьте HTML-структуру вашего меню

Сначала вам нужно убедиться, что HTML-структура вашего меню формируется правильно. Вызов wp_nav_menu() создает стандартный вывод для меню. Используйте инструменты разработчика в вашем браузере (обычно F12) для проверки структуры DOM, чтобы увидеть, как выглядит ваше меню. По умолчанию WordPress создает вложенные списки для подменю. Вот пример, на что следует обратить внимание:

<ul class="primaryNav">
    <li>
        <a href="#">Главная</a>
        <ul>
            <li><a href="#">Подстраница 1</a></li>
            <li><a href="#">Подстраница 2</a></li>
        </ul>
    </li>
    <li><a href="#">Контакты</a></li>
</ul>

2. Добавьте CSS для скрытия подменю

Чтобы подменю были скрыты по умолчанию, вам нужно добавить соответствующие стили в ваш файл style.css. Например:

.primaryNav ul {
    display: none; /* Скрыть все подменю */
}

.primaryNav li:hover > ul {
    display: block; /* Показать подменю при наведении */
}

.primaryNav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.primaryNav li {
    position: relative;
}

Эти стили скрывают подменю до тех пор, пока пользователь не наведет курсор на родительский элемент, после чего они становятся видимыми.

3. Использование JavaScript/jQuery (опционально)

Если вы хотите добавить некоторую интерактивность, например, чтобы подменю открывались или закрывались по клику, вы можете использовать jQuery. Убедитесь, что jQuery загружен в вашей теме (обычно он загружается по умолчанию в WordPress). Добавьте следующий код в файл functions.php или в отдельный файл JS и подключите его:

jQuery(document).ready(function($) {
    $('.primaryNav li').hover(function() {
        $(this).children('ul').stop(true, true).slideDown(200);
    }, function() {
        $(this).children('ul').stop(true, true).slideUp(200);
    });
});

Этот код будет вызывать эффект "скольжения" при наведении на элементы меню с подменю.

4. Убедитесь в правильности регистрации меню

Вы правильно зарегистрировали меню и вызываете его, но проверьте, чтобы ваши параметры были заданы корректно:

function register_my_menus() {
    register_nav_menus(
        array(
            'primary_navigation' => __( 'Primary Navigation' )
        )
    );
}
add_action( 'init', 'register_my_menus' );

wp_nav_menu( array(
    'theme_location' => 'primary_navigation',
    'container_class' => 'primaryNav',
    'depth' => 2,
));

Заключение

После выполнения всех этих шагов ваши выпадающие меню должны работать должным образом. Проверяйте вашу тему на разных устройствах и браузерах, чтобы убедиться, что все выглядит и работает так, как задумано. Если у вас остались вопросы или проблемы, пожалуйста, не стесняйтесь обратиться за помощью. Удачи в разработке вашей темы!

Оцените материал
Добавить комментарий

Капча загружается...