如何在路径自动中使用斜杠分隔分类层次结构


14

Pathauto似乎具有不同的别名分类层次结构。

分类菜单

  1. 分类>汽车>阿斯顿·马丁> DB9 Coupe
  2. 分类>职位>会计

我想要的是这样的网址:

  • 分类/职位/会计(非会计职位分类)

(请注意,Pathautho也会以相反的顺序生成破折号。)

在Pathauto中,我正在使用以下模式:(Default path pattern适用于以下带有空白模式的所有词汇)

[term:parents-all]

困惑。

Answers:


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

等等...


非常感谢您!因此,如果我有一个深达5级(包括vocab)的分类体系,则将为[term:vocabulary] / [term:parent:parent:parent:parent:name] / [term:parent:parent:name] / ...等。 。, 对?我希望可以以这样的方式配置令牌模块,而无需以这种方式重复定义父子对象。如果您的树出乎意料地变成了6级,那您将不得不删除并更新您的路径以包含另一级,然后变成7级深,依此类推。等等。管理员更新pathauto!
2012年

1
即使这是公认的答案,也请查看@NenadP的答案以获取可扩展的解决方案。
保罗

16

有一种聪明的方法可以通过使用join:/

就我而言,我使用了:

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

field-taxonomy-skolski从分类树中选择术语的字段在哪里。尽管下面有一个设置,但正斜杠将被删除

管理»配置»搜索和元数据»URL别名»URL别名 -设置

在页面底部的PUNCTUATION下拉菜单中。将斜杠(/)设置为“无操作”而不是“删除”。


答对了!我自己提供了上述不可扩展的解决方案(drupal.stackexchange.com/questions/27141/…),当然我更喜欢这种解决方案。我发誓当我努力使该模式起作用时,令牌选项还没有出现。谢谢!
Artur 2012年

2
[...:join:/]不适用于我,但[...:join-path]可以。备注:使用join-path不能选择分隔符。它只是使用/作为分隔符。

如果这对您不起作用,则可能需要安装并启用“实体”模块。
coderama

Drupal 8的模式略有不同,例如: [term:vocabulary]/[term:parents:join:/]/[term:name]
MartinKlíma,

6

这对我适用于具有令牌7.x-1.3和Pathauto 7.x-1.2的Drupal 7.15:

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

就像在第二个答案中提到的布鲁诺普斯一样,join:%separator%发挥了魔力。它将默认破折号替换为%separator%。

非常感谢brunops!


这必须是正确的答案!不论您拥有多少级别,这都可以。
Rantiev 2014年

3

使它起作用的关键是:

  • 安装并启用实体API,实体令牌,路径自动和分类法模块。
  • 在您的内容类型上创建一个字段,并将“字段类型”设置为“术语引用”,然后将其命名为“ field-content-category”(机器名称)
  • 将值的数量(也就是“用户可以为此字段输入的最大值数量”)设置为1(如果要使用在路径元素之间自动添加/的联接路径标记,则非常重要)。
  • 将网址格式(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]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.