pathautoの分類階層をスラッシュで区切る方法


14

Pathautoには、分類階層をエイリアスする別の方法があるようです。

分類メニューから:

  1. クラシファイド>車>アストンマーティン> DB9クーペ
  2. クラシファイド>ジョブ>会計

私が欲しいのは、URLについて次のようなものです:

  • クラシファイド/ジョブ/アカウンティング(会計-ジョブ-クラシファイドではありません)

(Pathauthoはダッシュを逆順に並べてこれを生成することに注意してください。)

Pathautoでは、このパターンを使用しています:(Default path pattern以下の空白のパターンを持つすべての語彙に適用されます)

[term:parents-all]

混乱した。

回答:


10

トークンモジュールが有効になって、あなたはこのようなパターンを設定することができます。

[term:vocabulary]/[term:parent:parent:name]/[term:parent:name]/[term:name]

必要なだけこのパターンを作成します。パスは次のようになります。

vocabulary
vocabulary/category1
vocabulary/category1/subcategory1
vocabulary/category1/subcategory2
vocabulary/category1/subcategory2/subsubcategory1

等々...


あなたに感謝します!したがって、[term:vocabulary] / [term:parent:parent:parent:name] / [term:parent:parent:name] / ...などの5階層の分類階層がある場合(語彙を含む) 。、 正しい?トークンモジュールは、この方法で親子を繰り返し定義する必要がないような方法で構成できることを望みます。予期せずにツリーが6レベルになると、別のパスを含めるためにパスを削除および更新する必要があり、その後7レベルの深さになるなどです。管理者がpathauto!を更新します
1月

1
これは受け入れられた回答ですが、スケーラブルなソリューションについては@NenadPの回答を確認してください。
ポール

16

join:/を使用してこれを行う賢い方法があります

私の場合、私は以下を使用しました:

[node:field-taxonomy-skolski:parents:join:/]

ここでfield-taxonomy-skolski、分類ツリーから用語を選択するためのフィールドです。スラッシュは削除されますが、下に設定があります

管理»設定»検索とメタデータ»URLエイリアス»URLエイリアス -設定

PUNCTUATIONドロップダウンのページの下部にあります。「削除」ではなく、スラッシュ(/)「アクションなし」に設定します。


ビンゴ!私自身は上記のスケーラブルではないソリューション(drupal.stackexchange.com/questions/27141/…)を提供しましたが、もちろんこれはずっと気に入っています。そのパターンを機能させるのに苦労していたときに、トークンオプションがなかったことを誓います。ありがとう!
アルトゥール

2
[...:join:/]は機能しませんでしたが、[...:join-path]は機能しました。注:join-pathでは、セパレータを選択できません。区切り文字として/を使用するだけです。

これがうまくいかない場合は、おそらく「エンティティ」モジュールをインストールして有効にする必要があります。
コーダラ

Drupal 8のパターンは少し異なります。例: [term:vocabulary]/[term:parents:join:/]/[term:name]
マーティンクリマ

6

これは、トークン7.x-1.3およびPathauto 7.x-1.2を使用したDrupal 7.15で動作します。

[term:parents:join:/] / [term:name]

2番目の回答でブルーノプスが述べたように、join:%separator%は魔法を使います。デフォルトのダッシュを%separator%に置き換えます。

ブルノプスに感謝します!


これは正解でなければなりません!レベルがいくつあるかはまったく関係ありません。
ランティエフ14

3

これを機能させるための鍵は次のとおりです。

  • エンティティAPI、エンティティトークン、パス自動、および分類モジュールをインストールして有効にします。
  • コンテンツタイプにフィールドを作成し、フィールドタイプを用語参照に設定し、「field-content-category」(マシン名)などの名前を付けます
  • 値の数、別名、「ユーザーがこのフィールドに入力できる値の最大数」を1に設定します(パス要素間に/を自動的に追加する結合パストークンを使用する場合に非常に重要です)。
  • URLパターン(admin / config / search / path / patterns)を「[node:field-content-category:parents:join-path] / [node:field_content_category] ​​/ [node:title]」のようなものに設定します

0

さて、次のようなスマートなものを使用することをお勧めします。

[term:parent:terms:reversed:join :?]

しかし、私は私の人生がそれをどちらも機能させることはできません。代わりに、以下をお勧めしますが、階層が許す限り深くすることができます(置換パターンで見ることができます)。階層のより深いところで用語を追加する場合、パターンも更新する必要があります。

[term:parents-all:3] / [term:parents-all:2] / [term:parents-all:1]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.