Menu path in Pathauto

2019-03-09 17:49发布

How do I get pathauto under Drupal 7 to generate a URL alias by the full menu path?

10条回答
你好瞎i
2楼-- · 2019-03-09 18:25

Enjoy!

[node:menu-link:parents:join-path]/[node:title].html

查看更多
一夜七次
3楼-- · 2019-03-09 18:26

I ended up using:

[node:menu-link:parent:url:path]/[node:menu-link]

Heavy caution though: If the node does not have a menu link, you'll end up without an automatically aliased page. On the bright side, this might make you aware of orphan pages. (Consider it a feature!)

Note that using the pattern:

[node:menu-link:url:path]/[node:menu-link]

will only give the node's menu link, not that of the parent (which would be needed to reference the parent's path).

Or the pattern: [node:parent:url:path]/[node:menu-link]

throws an error in my instance of Drupal 7 about invalid tokens (even though I have the token module installed).

查看更多
孤傲高冷的网名
4楼-- · 2019-03-09 18:26

I think it has to be this pattern now:

[node:menu-link:url:path]/[node:menu-link]

"path" instead of "alias"

查看更多
萌系小妹纸
5楼-- · 2019-03-09 18:29

The pattern that works for me is the following:

[node:menu-link:parent:url:alias]/[node:menu-link]

I also intalled the Token module like Eaten suggested. Don't know if [node:menu-link:parent:url:alias] is part of core or lives in contrib.

查看更多
劫难
6楼-- · 2019-03-09 18:32
[node:menu-link:parent:url:path]/[node:title]

If the node is not in the menu, then it does not create an alias. Otherwise this seems to work for n-tier menus.

查看更多
甜甜的少女心
7楼-- · 2019-03-09 18:38

If you're attempting to make aliases for pages that are 3rd level or deeper, for example:

Home page
 > Level 1 page
   > Level 2 page
     > Level 3 page

and you want the alias for Level 3 page to look like http://domain.com/level-1/level-2/level-3, I got it to work for me by setting my pattern to:

[node:menu-link:parent:parent:parent:title]/[node:menu-link:parent:parent:title]/[node:menu-link:parent:title]/[node:title]

Notice that I added :parent to the token, and for the first one I added it twice.

查看更多
登录 后发表回答