Drupal 7でpathautoを取得して、フルメニューパスでURLエイリアスを生成するにはどうすればよいですか?
誰かがPathauto/Tokenのより新しいバージョンでこれに遭遇した場合の単なる更新。これは私のために働いた:
[node:menu-link:parents:join-path]/[node:menu-link]
私は最終的に以下を使用しました:
[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]
「エイリアス」の代わりに「パス」
Contrib Token module もインストールする必要があります-Tokenの機能の多くはD7のコアの一部ですが、Edgeケーストークンの一部(のフルメニューパスなど)指定されたノード)はコアによって自動的に提供されません。
これをインストールすると、[node:menu-link:parent]または[node:menu-link:parent:url]が機能するはずです。
私のために働くパターンは次のとおりです:
[node:menu-link:parent:url:alias]/[node:menu-link]
また、Eatenが提案したようにTokenモジュールをインストールしました。 [node:menu-link:parent:url:alias]
がコアの一部なのか、貢献しているのかわからない。
たとえば、第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
を追加し、最初のトークンには2回追加したことに注意してください。
この答えに出くわし、これを追加する方法を疑問に思う人のために:
[構成]> [検索とメタデータ]> [URLエイリアス]を選択し、[パターン]タブで作成します。
楽しい!
[node:menu-link:parents:join-path]/[node:title] .html
これは私が使用するソリューションです:
[node:menu-link:parents:join:/]/[node:menu-link]
親メニュー項目をダッシュで区切ります。それが私に必要なものです。