Wie kann ich mit pathauto URLs für tief verschachtelte Vokabulare generieren?


6

Ich generiere Breadcrumbs aus URL-Argumenten, wie hier beschrieben .

Ich habe einen Wortschatz, der so aussieht:

Kunst-> Performing-> Tanzen-> Ballett

Ich möchte, dass meine URL so aussieht: Kunst / Performing / Tanzen / Ballett

Mit dem Pathauto-Modul kann ich dies für taxonomische Begriffe tun:

[term:parent]/[term:name]

Was mir auf der Ballettseite Folgendes gibt: nicht was ich will:

dancing/ballet 

Wenn ich Eltern anstelle von Eltern verwende, ( [term:parents]/[term:name]); das ist nah aber nicht ganz:

arts-performing-dancing/ballet

Wie komme ich von arts-performing-dancingnach arts/performing/dancing?

Antworten:


9

Versuchen Sie so etwas als Vokabular:

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

Und deine letzte Frage sollte verschwinden.

Stellen Sie nur sicher, dass Sie den parent:Teil mindestens so oft wiederholen, wie es die maximale Begriffstiefe in Ihrem Wortschatz erwartet. Pathauto überspringt intelligent Overhead-Elemente.

Ich weiß, dass es nicht super skalierbar ist, aber es funktioniert für mich.


Das hat es geschafft! Wenn Leistung zu einem Problem wird, werde ich nach einem besseren Weg suchen, aber das ist definitiv gut genug für den Moment.
Patrick Kenny

5

Ich habe einen besseren Weg gefunden, der skaliert

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

Einverstanden. Dieses Token war nicht verfügbar, als ich meine nicht skalierbare Lösung vorschlug :)
Artur

4

Alle diese Antworten sind richtig, aber Sie können auch das Taxonomy-Entitätsindexmodul verwenden, das Taxonomie-Token bereitstellt. Probleme beginnen, wenn Ihr Begriff Schrägstriche enthält.

Das Taxonomie-Entitätsindexmodul verwaltet einen normalisierten Index aller Begriffe, die einer bestimmten Entität und Revision zugeordnet sind. Die Kerntabelle {taxonomy_index} verwaltet nur ihre Daten für veröffentlichte Knoten. Dieses Modul verwaltet seine Daten für alle Entitätstypen (unabhängig davon, ob sie veröffentlicht wurden oder nicht) und wird auch durch Überarbeitung indiziert.


1

Wenn Sie ein Muster für Drupal 8 finden, verwenden Sie [term:parents:join:/]/[term:name]

Beispielergebnis: arts/performing/dancing

Da unser Trennzeichen ein Schrägstrich ist, vergessen Sie nicht, das Entfernen der Schrägstriche unter Administration> Konfiguration> Suche und Metadaten> URL-Aliase> Einstellungen zu deaktivieren. Gehen Sie zu / admin / config / search / path / settings, Abschnitt Interpunktion , suchen Sie nach Schrägstrich (/). und wählen Sie "Keine Aktion (nicht entfernen)" in der Dropdown-Liste.


0

Verwenden Sie das folgende Muster für den Pfadalias : [term:i18n-vocabulary]/[term:parents:join-path]/[term:i18n-name].

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.