Свое меню для каждой категории на Вордпресс

S
На сайте с 17.04.2011
Offline
250
2976

Подскажите, пожалуйста, как проще всего реализовать на Вордпресс структуру сайта, при которой для каждой категории будет свое меню. Планирую сделать в верхнем меню ссылки на категории, а в боковом меню - ссылки на статьи в этой категории. При переходе в другую категорию боковое меню должно меняться. На DLE все это легко реализовывал с помощью разных шаблонов, но на Вордпрессе пока не нашел легкого решения.

Generich
На сайте с 02.07.2015
Offline
125
#1

Display Widgets был раньше. Сейчас вроде как нет его в wordpress.org, может заменили чем, хз. Пользуюсь стареньким за 2013 год, вордпресс 4.4 вроде не конфликтует. Сейчас может что-то новое есть, особо не искал, т.к. мне достаточно и того что есть.

S
На сайте с 30.09.2016
Offline
469
#2

Боюсь сказать что-то обидное для ВП-ников, но почему бы в шаблоне не вывести это меню как функцию от категории? В этом смысле Вордпресс ничем не отличается от других CMS.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
O
На сайте с 29.05.2008
Offline
195
#3

Вам нужно зарегистрировать отдельное меню (или отдельные размещения меню) для каждой категории.

Как идентификатор (slug) можете использовать slug/ID категории (в качестве префикса) _ menu, а как название меню "Меню для НАЗВАНИЕ КАТЕГОРИИ".

Далее, вы сможете редактировать каждое из меню из панели управления Wordpress - внешний вид - меню.

Регистрация меню

register_nav_menus()

https://codex.wordpress.org/Function_Reference/register_nav_menus

Отображение меню

wp_nav_menu(['theme_location' => $category.'_menu']), где $category (префикс текущей категории), можно получить с помощью get_the_category()[0]->slug

https://codex.wordpress.org/Function_Reference/wp_nav_menu

https://developer.wordpress.org/reference/functions/get_the_category/

За этот метод выше я ручаюсь, потому, что реализовывал на клиентском мультиязычном сайте (для каждого языка отдельное меню).

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

В таком случае, вызов будет что-то типа

wp_nav_menu(['theme_location' => 'sidebar', 'menu'=> $category.'_menu'])

То-есть, вам нужно создать ОДНО размещение меню через register_nav_menu() со slug, например, sidebar и далее уже для него создать меню для каждой категории со slug slug/ID категории _ menu.

Далее мы получаем slug/ID первой категории поста get_the_category()[0]->slug и получаем для него меню

wp_nav_menu(['theme_location' => 'sidebar', 'menu'=> $category.'_menu'])

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

Название ссылки в меню можно будет отредактировать.

Меню на каждой категории можно будет дополнительно стилизовать, потому, что WP добавляет ID="название меню" к блоку меню, например, .category_name_one_menu {color: red}

Также, советую установить плагин кеширования меню в переходящие данные, потому, что его генерирование на удивление может замедлять работу сайта (каждая ссылка в меню берется из базы данных, как плюс - всегда актуальные ссылки, как минус - растущее с количеством ссылок количество запросов в базу).

https://generatewp.com/how-to-use-transients-to-speed-up-wordpress-menus/

Sitealert:
Боюсь сказать что-то обидное для ВП-ников, но почему бы в шаблоне не вывести это меню как функцию от категории? В этом смысле Вордпресс ничем не отличается от других CMS.

В таком случае,

1. Не будет доступен визуальный редактор меню, и как вытекающее, нужно будет постоянно следить за актуальностью ссылок в коде.

2. Меню не будет кешироватся с помощью функционала переходящих данных Wordpress.

CP
На сайте с 12.08.2009
Offline
101
#4
Sitealert:
Боюсь сказать что-то обидное для ВП-ников, но почему бы в шаблоне не вывести это меню как функцию от категории? В этом смысле Вордпресс ничем не отличается от других CMS.

Не эксперт конечно, но наверно потому что разрабы cms продолжают делать блог платформу, а пользователи делают на нем не блоги)

Профессиональный frontend: JS, html,css, Single-Page App (/ru/forum/964386)
S
На сайте с 17.04.2011
Offline
250
#5

Всем спасибо! Порылся внимательно в плагинах и нашел подходящее решение.

Плагин Custom Sidebars подходит для моих нужд.

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
Generich:
Display Widgets был раньше. Сейчас вроде как нет его в wordpress.org, может заменили чем, хз.

Плаг был продан, а новый владеелц оказался мудаком (он несколько плагов перекупил) и внедрил бекдор. Поэтому плаг удалили из репо. Но альтернатив — как грязи, на любой вкус

Sitealert:
Боюсь сказать что-то обидное для ВП-ников, но почему бы в шаблоне не вывести это меню как функцию от категории?

И это абсолютно правильное решение. Для ВП их даже несколько в этом алгоритме: и свои шаблоны рубрик и условия выбора рубрики в одном шаблоне, и подключение теплейтов.. это так, на вскидку, самое простое.

Content-pro:
Не эксперт конечно, но наверно потому что разрабы cms продолжают делать блог платформу, а пользователи делают на нем не блоги)

Уже лет десять как ВП это CMF, а «не экперты» продолжают разносить ересь про блогплатыорму

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий