Путь меню в Патхауто
Как получить pathauto под Drupal 7 для генерации псевдонима URL по полному пути меню?
10 ответов
Просто обновление на случай, если кто-нибудь столкнется с этим с более свежей версией Pathauto/Token. Это сработало для меня:
[Узел: меню-ссылка: родители: нарисуйте путь]/[узел: меню-ссылка]
Я закончил тем, что использовал:
[node:menu-link:parent:url:path]/[node:menu-link]
Однако следует проявлять особую осторожность: если на узле нет ссылки на меню, у вас не будет автоматически добавленной страницы. С другой стороны, это может помочь вам осознать бесхозные страницы. (Считайте, что это особенность!)
Обратите внимание, что с помощью шаблона:
[node:menu-link:url:path]/[node:menu-link]
будет давать только ссылку меню узла, а не ссылку родителя (которая понадобится для ссылки на путь родителя).
Или шаблон: [node:parent:url:path]/[node:menu-link]
выдает ошибку в моем экземпляре Drupal 7 о недопустимых токенах (даже если у меня установлен модуль токенов).
[node:menu-link:parent:url:path]/[node:title]
Если узел не находится в меню, он не создает псевдоним. В противном случае это работает для n-уровневых меню.
Я думаю, что это должен быть такой шаблон сейчас:
[node:menu-link:url:path]/[node:menu-link]
"путь" вместо "псевдоним"
Шаблон, который работает для меня, следующий:
[node:menu-link:parent:url:alias]/[node:menu-link]
Я также установил модуль Token, как предложил Eaten. Не знаю, если [node:menu-link:parent:url:alias]
является частью ядра или живет в Cont.
Вам также нужно будет установить модуль contrib Token - хотя многие функции Token являются частью ядра в D7, некоторые из токенов крайнего случая (например, полный путь по меню для данного узла) не предоставляются по ядру автоматически.
После установки я считаю, что [node: menu-link: parent] или [node: menu-link: parent: url] должны работать.
Если вы пытаетесь создать псевдонимы для страниц 3-го уровня или более, например:
Home page
> Level 1 page
> Level 2 page
> Level 3 page
и вы хотите, чтобы псевдоним для страницы уровня 3 выглядел как http://domain.com/level-1/level-2/level-3
Я заставил его работать на меня, установив мой шаблон:
[node:menu-link:parent:parent:parent:title]/[node:menu-link:parent:parent:title]/[node:menu-link:parent:title]/[node:title]
Обратите внимание, что я добавил :parent
к жетону, и для первого я добавил его дважды.
Для тех, кто натыкается на этот ответ и задается вопросом, как добавить это:
Конфигурация> Поиск и метаданные> псевдонимы URL, затем создайте на вкладке "Шаблоны".
Наслаждайтесь!
[Узел: меню-ссылка: родители: нарисуйте путь]/[узел: название].html
Это решение, которое я использую:
[node:menu-link:parents:join:/]/[node:menu-link]
Он разделит родительские пункты меню тире. Это то, что мне нужно.