Puncte:2

Pathauto alias full path for hierarchical taxonomy terms

drapel nr

My client has content tagged by a hierarchical taxonomy of arbitrary depth.

Currently the maximum depth is three, but that could change:

ParentTerm
└── ChildTerm
    └── GrandchildTerm

Each Term has a unique TID (of course), but many Terms (especially descendants) share identical strings for Name.

However, the full Taxonomy tree path to each term is guaranteed to be unique (two adjacent Terms will never be identically named.)

All nodes tagged with GrandchildTerm of TID = 42 appear in a View at /taxonomy/term/42.

I would like to use Pathauto to generate aliases for each Term at the full taxonomy tree path, like so:

/ParentTerm/ChildTerm/GrandchildTerm

I was looking for Tokens to accomplish this.

I found instead that the paths are set by a View which generates the list of Nodes tagged with the Term ID.

The View has a contextual filter which accepts {{ arguments.tid }}.

Under Page Settings, the value for Path is /taxonomy/term/%.

Someone on this forum said setting up two contextual filters would help, but that does not apply here.

I do not want /taxonomyname/taxonomyterm as the path; I want /ParentTerm/ChildTerm/GrandchildTerm as the path (or, if necessary, /tags/ParentTerm/ChildTerm/GrandchildTerm).

It is possible to set a contextual filter Content: Has taxonomy term ID (with depth) but I haven't been able to get the path I seek this way.

Also, I would like a ParentTerm taxonomy page to return results for its descendants, but the current View only displays items for the specific TID. (The Views Tree module would help here, but it does not work with Drupal 9 yet.)

If this were not a requirement, I might try flattening the taxonomy and using term names like ParentTerm-ChildTerm-GrandchildTerm to differentiate identically named descendant terms. (This would solve another problem the client has: the ambiguity of selecting the correct term from the "Tags" vocabulary when tagging content.)

Puncte:2
drapel in

Cred că vă veți lupta cu adevărat pentru ca acest lucru să funcționeze folosind vizualizarea implicită a paginii termenilor de taxonomie. Cu toate acestea, puteți dezactiva vizualizarea și apoi utilizați afișarea implicită a conținutului complet al entității pentru termeni și faceți tot ce doriți pentru aceasta (la fel ca o pagină nod).

  1. Dezactivați afișarea termenului de taxonomie care controlează /taxonomie/termen/%tid. Acest lucru va permite traseului canonic al entității termenului să se controleze.
  2. Creați un alias pathauto pentru termenii dvs. cu modelul dorit. Cred că probabil că puteți folosi jetoane existente pentru piesa părinte a căii, ceva de genul [termen:părinte:url:cale]/[termen:nume]. (Sau creați un simbol personalizat dacă un simbol existent nu funcționează.)
  3. Clonați afișajul dezactivat la pasul 1 (ca bloc sau încorporare - în funcție de modul în care doriți să-l plasați) și plasați-l pe paginile de termeni de taxonomie (prin aspectul blocului, context, preprocesare, crenguță sau orice altceva). Nu cred că va fi o problemă, dar dacă întâmpinați probleme la obținerea setului corect de tid pentru filtrul contextual folosind opțiunile implicite ale vizualizărilor, puteți utiliza hook_views_pre_view() pentru a obține informația de pe traseu și a-l trece la vizualizare în mod programatic.
hotwebmatter avatar
drapel nr
Mulțumesc @sonfd, voi încerca asta și voi accepta răspunsul tău dacă funcționează. Ce zici de returnarea rezultatelor pentru descendenți - ar trebui să postez asta ca o întrebare separată?
sonfd avatar
drapel in
@hotwebmatter - hopa, îmi pare rău că am ratat acea parte. Pentru asta este filtrul contextual _Conținut: Are taxonomie ID-ul termenului (cu adâncime)_, așa că ar trebui să îl poți folosi. Cred că dacă restul lucrează și întâmpinați probleme cu piesa respectivă, atunci ar merita să o puneți ca o întrebare separată.
hotwebmatter avatar
drapel nr
Niciodată nu am reușit ca taxonomia ierarhică să funcționeze așa cum mi-am dorit și am ajuns să iau o altă abordare, dar accept acest răspuns pentru că a fost util.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.