Как сделать боковое меню WordPress в виде раскрывающегося списка?
Пример страницы:
https://cpkro.kirovedu.ru/?page_id=244
Ранее это был разворачивающийся список . Как вернуть?
- Вопрос задан более года назад
- 50 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Навигация пользователя
Как зафиксировать aside при скроллинге?
- 2 подписчика
- 05 июл. 2023
- 265 просмотров

- 1С-Битрикс
- +1 ещё
Как отредактировать, подменю на Bitrix?
- 1 подписчик
- 21 июн. 2023
- 60 просмотров
Редактирование пунктов меню администриративной панели WordPress
Функция «add_menu_page» добавляе пункт верхнего уровня в панель администрирования WordPress. В процессе создания пункта меню к нему прикрепляетс ястраница, которая отвечает за этот пункт.
Функция «add_menu_page» проверяет права доступа пользователя, чтобы отобразить пункт меню. Если у пользователя нет уровня доступа, то пункт меню не будет показан
У функции есть несколько аргументов:
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
| Название | Тип данных | Описание |
|---|---|---|
| $page_title | строка | Текст, который будет использован в теге на странице, которая открывается при нажатии на пункт меню. Обязательный параметр. |
| $menu_title | строка | Название пункта бокового меню. Обязательный параметр |
| $capability | строка | Уровень доступа пользователя (права), необходимые для просмотра пункта. |
| $menu_slug | строка | Уникальный ярлык (slug), по которому идёт обращение к пункт. Обязательный параметр. Указывается название PHP файла относительно каталога плагинов, который отвечает за вывод страницы меню. Либо можно указать любую ссылку, куда будет вести пункт. |
| $function | строка | Название функции, которая выводит содержание страницы пункта меню. Если пустое значение, то будет только подключаться PHP файл для вывода из параметра «$menu_slug». По умолчанию: нет |
| $icon_url | строка | Адрес иконки для пункта меню относительно папки с плагинов. Размеры иконки должны быть 20х20 пикселей или меньше. Можно указывать изображение в base64: «data:image/png;base64. » — в этом случае, иконка фоном контейнера. Можно указывать название иконки из коллекции «dashicons», которая встроена в WordPress. По умолчанию: » |
| $position | число | Позиция в меню. Чем больше цифра, тем ниже располагается пункт меню. При совпадении чисел с уже существующими пунктами произойдёт перезапись (пункт будет заменён), поэтому не стоит использовать целые числа. Лучше использовать цифры с сотыми долями, чтобы вероятность совпадения была минимальной. Такие числа передавайте как строку. |
Если число не указано, то пункт меню будет добавлен в конец списка. Список позиций системных пунктов:
Рассмотрим пример использования функции. Создадим пункт меню, за отображение страницы которого будет отвечать функция «show_page» :
); function show_page() < ?> Тело страницы ?>
Можно вынести код в файл:
А внутри файла «admin.php» будет:
Тело страницы
Добавление подпункта бокового меню
Функция «add_submenu_page» добавляет подпункт в уже существующий пункт меню. То есть дочернюю страницу (подраздел). Эта функция так же проверяет права пользователя, скрывая пункт, если прав на его просмотр было недостаточно.
У функции есть несколько аргументов:
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position );
| Название | Тип данных | Описание |
|---|---|---|
| $parent_slug | строка | Ярлык (slug) родительского пункта меню, в который добавляется дочерний. Либо название файла страницы администрирования WordPress. Если поставить значение NULL, то страница не будет появляться в пункте меню. Примеры значений: index.php или функция add_dashboard_page() — Консоль (Dashboard). |
edit.php или функция add_posts_page() — Посты (Posts).
upload.php или функция add_media_page() — Медиафайлы (Media).
link-manager.php или функция add_links_page() — Ссылки (Links).
edit.php?post_type=page или функция add_pages_page() — Страницы (Pages).
edit-comments.php или функция add_comments_page() — Комментарии (Comments).
edit.php?post_type=your_post_type — Произвольные типы записей.
themes.php или функция add_theme_page() — Внешний вид (Appearance).
plugins.php или функция add_plugins_page() — Плагины (Plugins).
users.php или функция add_users_page() — Пользователи (Users).
tools.php или функция add_management_page() — Инструменты (Tools).
options-general.php или функция add_options_page() — Настройки (Settings).
Удаление пункта и подпункта бокового меню
Удалить пункт и подпункт бокового меню можно с помощью функций «remove_menu_page» и «remove_submenu_page» соответственно. Функция для удаления верхнего пункта меню принимает только один аргумент — ярлык (slug), который был указан при создании пункта. А для удаления подменю надо указать ярлык для родительского и дочернего пункт одномременно:
remove_menu_page( $menu_slug ); remove_submenu_page( $menu_slug, $submenu_slug );
Продемонстрируем, как можно удалить пункт меню и подпункты:
add_action( 'admin_menu', 'remove_menu' ); function remove_menu()< remove_menu_page( 'plugins.php' ); // удалим закладку плагинов remove_submenu_page( 'plugins.php', 'myplugin' ); // удалим пункт со своим плагином >
Advanced Sidebar Menu — виджет зависимого бокового меню для wordpress

Давайте рассмотрим решение одной тривиальной задачи с wordpress меню которая время от времени встречается разработчикам. Бывает, что на сайтах нужно выводить сразу два меню, которые при этом между собой взаимосвязаны: одно верхнее горизонтальное 1-го уровня, а второе в сайдбаре 2-го уровня. Причем в боковом отображаются только те подпункты, для которых выбран соответствующий родительский элемент в главном меню. Например, если у вас в шапке сайта есть перечень стран, то выбрав, допустим, Италию, в сайдбаре получите только лишь список итальянских городов.
Теоретически, реализовать такую фишку можно с помощью функции wp_nav_menu и какого-то хитрого PHP кода, но я предлагаю воспользоваться готовым решением — виджетом меню для wordpress под названием Advanced Sidebar Menu. Это максимально просто и не нужно делать никакие правки шаблона.

Скачать плагин можно отсюда или установить через админку. Основная функция — создание и вывод динамического бокового меню с учетом связи «родитель / наследник» для страниц и категорий сайта.
Никаких дополнительных настроек после установки делать не нужно, в разделе «Внешний вид» — «Виджеты» просто появится 2 новых элемента: Advanced Sidebar Pages Menu и Advanced Sidebar Categories Menu. Настройки данных виджетов меню для wordpress плюс-минус похожие:

- Title — заголовок виджета.
- Include Parent Page — добавлять ли родительский элемент в меню.
- Include Parent Even With No Children — включать ли страницы без подстраниц.
- Order By — варианты сортировки (порядковый номер, заголовок, дата).
- Use this Plugin’s Styling — использование стилей оформления от плагина.
- Pages to Exclude (ids) — исключаемые страницы.
- Always Display Child Pages — всегда выводить подстраницы.
- Levels to Display — количество уровней меню для отображения.
Как видите на скриншоте выше, для категорий все, в принципе, аналогично, но без сортировки и уровней. Плюс добавляется опция отображения элемента на странице с полным текстом записи (Display Categories on Single Posts).
Итого, в большинстве случаев вам просто нужно добавить виджет меню для wordpress в сайдбар и он сразу начнет работать. Конечно, при этом на сайте должна существовать соответствующая иерархия с подстраницами. Если честно, не совсем понятно как настроить зависимое меню для сложных проектов с родительской страницей, начиная со 2-го уровня. В описании модуля сказано, что нужно назначить родительскую страницу/категорию, но в настройках ничего похожего я не увидел. С другой стороны подобные ситуации встречаются крайне редко, как правило, зачастую у вас всего 2 меню (боковое и главное), поэтому виджет Advanced Sidebar Menu полностью подходит.
Напоследок следует заметить, что есть в модуле Pro версия с более широкими настройками (опции оформления, стиль аккордеона для меню и т.п.). Разработчикам советую заглянуть на страницу Developer Docs где собрана информация о специальных фильтрах/функциях для более сложных вариантов использования плагина.
Если у вас остались какие-то вопросы по боковому меню в wordpress или знаете другие подходящие виджет меню для решения этой задачи, пишите в комментариях.
Понравился пост? Подпишись на обновления блога по
RSS,
Email или
twitter!

Оцените статью:
(голосов — 7, средний балл: 5,29 из 7)
Категории: Виджеты; Плагины;
Теги: вордпресс веб-разработка, меню и навигация, плагины и виджеты, сайдбар.
Похожие статьи:
- Tabbed Widgets Plugin для табов в wordpress блоге
- 5 плагинов популярных постов в вордпресс
- Display Widgets — показываем/скрываем виджеты на страницах
- Quotes Collection для вывода случайных цитат (записей)
- Simple Music Widget — виджет музыкального плеера
Вертикальное меню с выпадающим списком на WordPress

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

Итак, приступим к созданию вертикального выпадающего меню.
Скачиваем и устанавливаем плагин Bellows Accordion Menu — он есть в репозитории WordPress.

Далее идём во вкладку «внешний вид/виджеты». И перетаскиваем виджет плагина «Bellows Accordion — standart menu» в сайдбар сайта.

После этого открываем настройки виджета и выбираем меню, которое будет в нём отображаться.

После этого у вас уже заработает выпадающее вертикальное меню со стандартными настройками. Далее можно перейти в настройки плагина и поменять внешний вид. Делается это во вкладке «Basic configuration/skin»

По умолчанию, в бесплатной версии, есть всего три темы на выбор: синяя, светлая и серая. В нашем случае мы выберем светлую тему «Vanilla». Если же данные цветовые решения и сам стиль меню вам не подходят, то их можно поменять при помощи правки CSS кода. Но это уже другая история.
Каким ещё функционалом обладает плагин вертикального меню для WordPress
- Помимо виджета, его можно вставить при помощи шорткода или php в любое место на сайте.
- Можно установить любой шрифт.
- Есть поддержка Font Awesome
Платная версия плагина Bellows Accordion Menu
В платной версии доступно:

- 20 готовых стилей на выбор
- Простое изменение внешнего вида без знания CSS
- Добавление иконок и картинок
- Пользовательский контент — в пункты меню можно добавить любой текст, HTML или шорткод
В результате можно получить продвинутое меню с выпадающими подпунктами, где можно разместить всё что угодно, от обычных пунктов меню до картинок, текста и кнопок.