web-dev-qa-db-ja.com

Pathautoのメニューパス

Drupal 7でpathautoを取得して、フルメニューパスでURLエイリアスを生成するにはどうすればよいですか?

26
dantz

誰かがPathauto/Tokenのより新しいバージョンでこれに遭遇した場合の単なる更新。これは私のために働いた:

[node:menu-link:parents:join-path]/[node:menu-link]

43
Ian 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のインスタンスで無効なトークンについてエラーをスローします(トークンモジュールがインストールされている場合でも)。

9
user559633
[node:menu-link:parent:url:path]/[node:title]

ノードがメニューにない場合、エイリアスは作成されません。それ以外の場合、これはn層メニューで機能するようです。

8
Kenan

私はそれが今このパターンでなければならないと思います:

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

「エイリアス」の代わりに「パス」

5

Contrib Token module もインストールする必要があります-Tokenの機能の多くはD7のコアの一部ですが、Edgeケーストークンの一部(のフルメニューパスなど)指定されたノード)はコアによって自動的に提供されません。

これをインストールすると、[node:menu-link:parent]または[node:menu-link:parent:url]が機能するはずです。

2
Eaton

私のために働くパターンは次のとおりです:

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

また、Eatenが提案したようにTokenモジュールをインストールしました。 [node:menu-link:parent:url:alias]がコアの一部なのか、貢献しているのかわからない。

2
toon.ketels

たとえば、第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回追加したことに注意してください。

1
csuggs4

この答えに出くわし、これを追加する方法を疑問に思う人のために:

[構成]> [検索とメタデータ]> [URLエイリアス]を選択し、[パターン]タブで作成します。

0
Robert_T_Taylor

楽しい!

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

0
iwish

これは私が使用するソリューションです:

[node:menu-link:parents:join:/]/[node:menu-link]

親メニュー項目をダッシュ​​で区切ります。それが私に必要なものです。

0
Marcos Buarque