Pathautoのメニューパス
-
11-10-2019 - |
質問
Drupal 7の下でPathautoを取得して、フルメニューパスでURLエイリアスを生成するにはどうすればよいですか?
解決
Pathauto/Tokenのより最近のバージョンで誰もがこれに出くわした場合のアップデート。これは私のために働いた:
ノード:メニューリンク:両親:Join-Path]/[ノード:メニューリンク
他のヒント
最終的に使用しました。
[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]
「エイリアス」の代わりに「パス」
コントリブをインストールする必要があります トークンモジュール 同様に、トークンの機能の多くはD7のコアの一部ですが、エッジケーストークンの一部(特定のノードのフルメニューパスなど)はCoreによって自動的に提供されていません。
それがインストールされていると、[node:menu-link:parent]または[node:menu-link:parent:url]が機能するはずだと思います。
私に役立つパターンは次のとおりです。
[node:menu-link:parent:url:alias]/[node:menu-link]
また、Eatedのようなトークンモジュールを提案しました。かどうかわからない [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回追加しました。
楽しみ!
ノード:メニューリンク:両親:Join-Path]/[Node:title] .html
これが私が使用するソリューションです:
[node:menu-link:parents:join:/]/[node:menu-link]
ダッシュで親メニュー項目を分離します。それが私が必要とするものです。
この答えにつまずいて、これを追加する方法を疑問に思う人のために:
構成>検索とメタデータ> URLエイリアス、[パターン]タブの下に作成します。