Как мне получить pathauto в Drupal 7 для создания псевдонима URL по полному пути меню?
Путь меню в Pathauto
Ответы (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:parent:url:path]
определенно должен выдавать ошибку, поскольку у вашего узла нет родителя (если только у вас нет настраиваемого поля узла с именем parent). Ваш узел, необязательно, имеет родителя ссылки на меню, когда он помещается в меню, поэтому ваш первый шаблон работает, а ваш последний - нет. Ваше здоровье.
- person Mario Awad; 04.11.2014
[node:menu-link:parent:url:path]/[node:title]
Если узла нет в меню, то он не создает псевдоним. В противном случае это работает для n-уровневых меню.
Я думаю, что это должен быть этот образец сейчас:
[node:menu-link:url:path]/[node:menu-link]
"путь" вместо "псевдоним"
[node:menu-link:parent]/[node:title]
Который работает, как и ожидалось.
- person Albert Skibinski; 04.10.2011
Вам также потребуется установить contrib модуль Token, хотя многие функции Token часть ядра в D7, некоторые маркеры пограничного случая (например, полный путь меню данного узла) не предоставляются ядром автоматически.
С этим установленным, я считаю, что [узел:меню-ссылка:родительский] или [узел:меню-ссылка:родительский:url] должны работать.
Шаблон, который работает для меня, следующий:
[node:menu-link:parent:url:alias]/[node:menu-link]
Я также установил модуль Token, как предложил Eaten. Не знаю, является ли [node:menu-link:parent:url:alias]
частью ядра или находится в contrib.
Если вы пытаетесь создать псевдонимы для страниц 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
к токену, причем для первого я добавил его дважды.
Наслаждаться!
[узел:меню-ссылка:родители:путь-присоединения]/[узел:название].html
Это решение, которое я использую:
[node:menu-link:parents:join:/]/[node:menu-link]
Он будет разделять пункты родительского меню тире. Это то, что мне нужно.
Для тех, кто натыкается на этот ответ и задается вопросом, как добавить это:
Конфигурация> Поиск и метаданные> Псевдонимы URL, затем создайте на вкладке «Шаблоны».