У меня есть главное меню со структурой верхнего уровня, похожей на следующую:
Home - Categories - Something Else - ... - Contact
Каждая из этих ссылок верхнего уровня идет на соответствующую страницу узла.
У меня есть словарь для категорий (многоуровневый), и мне нужно получить эти термины таксономии в подменю в разделе «Категории». Я бы хотел избежать жесткого кодирования элементов в главном меню, так как подменю должно увеличиваться / уменьшаться по мере увеличения словарного запаса.
В прошлом я написал для этой цели слишком сложный код, который подключается к операциям таксономии и управляет подпунктами определенного меню на основе этого (очень похоже на то, что делает меню таксономии , но без необходимости иметь отдельное меню для каждого из них). словарь).
Хотя этот метод работает, он не идеален и, конечно, не является универсальным. Я не могу просто поднять этот код из старого проекта в новый, для этого потребуется разумное количество настроек.
Я не могу удержаться от ощущения, что для этого должно быть «стандартное» модульное решение.
Я видел некоторые предложения использовать несколько различных модулей в комбинации (даже некоторые предлагали использовать модули, основанные на представлениях, как ни странно). Я открыт для любого предложения, но если оно предполагает установку более 1 или 2 модулей и загрузку жестко заданной, зависящей от контекста конфигурации, это, вероятно, не слишком поможет в этом случае.
источник
Ответы:
Вариант а) Если я не ошибаюсь, вы не можете просто указать, где будет создано ваше меню таксономии (Расположение меню) при его создании? Я думаю, что единственная проблема, с которой вы можете столкнуться, это то, что вам нужно пересобирать меню каждый раз, когда обновляется таксономия.
Вариант б) Я сделал что-то похожее на этом на своем сайте, я использовал модуль « Представления меню », чтобы позволить мне поместить представление в основное меню.
Если вы создаете новое представление, в котором перечислены все ваши термины таксономии, в качестве отображения блока, примените любую дополнительную фильтрацию / модификацию в представлении, если это необходимо (вы можете этого не делать, но в моем примере я хотел). Затем, когда вы добавляете новую ссылку в свое главное меню, вы можете выбрать использование вида, а не ссылки. Оттуда вы выбираете, какое представление вы хотите использовать, выбираете пункт меню «Категория» в качестве родительского и сохраняете (после сохранения вы должны включить его в меню, что, по-видимому, является ошибкой в самом модуле).
Я не могу гарантировать, что это лучшее решение для вас, но оно сработало, когда я только что проверил его
источник
Menupoly имеет API для пользовательских «источников дерева меню». Я никогда не использовал это для чего-то другого, кроме ссылок в меню, поэтому могут возникнуть проблемы, которые мы должны исправить на пути. Но основная архитектура есть.
Если вы пойдете по этому маршруту, вы бы
Итак, каким-то образом вы должны быть в состоянии обнаружить, что ссылка «Категории» связана с таксономией.
Этот маршрут может быть какой-то работой, но он может быть полезен для других, и он, вероятно, более элегантен и пригоден для повторного использования, чем логика вашего сайта.
В настоящее время не существует даже таксономического «источника дерева меню», так что, возможно, это будет разумным первым шагом, прежде чем начинать со смешанного плагина.
источник
Metro Menus будет выполнять ваши требования, и даже он имеет встроенные скины и может создавать свои собственные, которые действуют так же, как хорошие меню. С помощью этого модуля вы можете выбрать любые подпункты с любой глубиной из меню или таксономии, и я не буду использовать это раньше.
Совместимость с сенсорным экраном (iPad, iPhone и т. Д.).
источник
Вы можете использовать модуль меню Om Maxi для того же. Это позволит администратору создавать меню с нужными вам блоками в виде вложений, такими модулями, как представления, слайд-шоу, меню, пользовательские, удобные меню, быстрые вкладки и пользовательские блоки с таблицами, списками, изображениями, видео и т. Д.
Вы можете создать отдельное меню с помощью таксономического меню и прикрепить это меню в качестве подссылки на меню, созданное ом макси меню.
Благодарность
источник
Я недавно сделал нечто подобное для меню категории продуктов. Это было только для 1 уровня, но его можно легко изменить, чтобы показать дальнейшие уровни.
Функция get_category_menu лучше использовать как блок, но для удобства она показана здесь как другая функция в файле template.php.
Надеюсь, что это помогает или, по крайней мере, шаг к решению.
Павел
источник