Drupal 7 で pathauto を取得して、フル メニュー パスで URL エイリアスを生成するにはどうすればよいですか?
10 に答える
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 モジュールもインストールする必要があります-- Token の多くの機能は D7 のコアの一部ですが、一部のエッジ ケース トークン (特定のノードの完全なメニュー パスなど) は提供されません。コアごとに自動的に。
それをインストールすると、[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]
コアの一部なのか、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
。最初のトークンには 2 回追加しました。
これは私が使用するソリューションです:
[node:menu-link:parents:join:/]/[node:menu-link]
親メニュー項目をダッシュで区切ります。それが私に必要なものです。
楽しみ!
[node:menu-link:parents:join-path]/[node:title].html
この答えに出くわし、これを追加する方法を知りたい人のために:
[構成] > [検索とメタデータ] > [URL エイリアス] を選択し、[パターン] タブで作成します。