Как сделать URL, отражающий структуру терминов Drupal, реализованным с помощью модуля Pathauto?
Существует словарь, подобный приведенному ниже, и его термин.
Запас слов
World [Machine Name: world]
Условия таксономии
USA [URL Alias: usa]
└─ California [URL Alias: usa/california]
└─ Los Angeles [URL Alias: usa/california/losangeles]
И я хотел бы использовать модуль Pathauto и сделать URL-адрес страницы термина losangeles, как показано ниже.
http://foo.com/usa/california/losangeles
Другими словами, машинное имя словаря берется в качестве корневого каталога, и я хочу сделать URL-адреса синхронными с иерархической структурой терминов, принадлежащих этому словарю, на путь ниже этого. И я хочу использовать токены Pathauto.
В таком случае, как я могу установить его на странице настроек Pathauto (/admin/config/search/path/ Pattern)?
Я пробовал много видов шаблонов, но это не сработало. Версия Drupal - 7.52.
Если вы знаете решение, пожалуйста, дайте мне знать. Большое спасибо.
1 ответ
Вы действительно должны взглянуть на предложения токенов, которые дает вам страница шаблонов. Под жетоном таксономии вы найдете жетон родителей.
Родители [термин: родители] Массив всех родителей термина, начиная с корня.
Это массив, который снова имеет другой токен, который позволяет вам соединять их вместе.
Объединенный путь [термин: родители: объединенный путь]. Значения каждого массива очищаются Pathauto, а затем соединяются с косой чертой в строку, напоминающую URL.
Теперь у вас есть готовый путь, подготовленный для вас, к тому же сроку, на котором вы находитесь, который вам нужно добавить себе с помощью термина: имя.
Давать вам путь:
[term:parents:join-path]/[term:name]
Это создаст правильный путь для вас, независимо от того, насколько глубоко
Сша, у которой нет родителей и имя сша будет генерировать:
/usa
Калифорния имеет одного родителя по имени США и называется Калифорния будет генерировать
/usa/california
И последние 2 родителя по имени США и Калифорния будут объединены в /usa/california и названы Лос-Анджелесом, что приведет к
/usa/california/losangeles