Pathauto 中的菜单路径

问题描述 投票:0回答:10

如何在 Drupal 7 下获取 pathauto 以通过完整菜单路径生成 URL 别名?

drupal drupal-7 pathauto url-design
10个回答
45
投票

只是一个更新,以防有人在更新版本的 Pathauto/Token 中遇到此问题。这对我有用:

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

10
投票

我最终使用了:

[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
投票
[node:menu-link:parent:url:path]/[node:title]

如果该节点不在菜单中,则不会创建别名。否则这似乎适用于 n 层菜单。


5
投票

我认为现在必须是这样的模式:

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

“路径”而不是“别名”


2
投票

您还需要安装 contrib Token 模块 - 尽管 Token 的许多功能是 D7 核心的一部分,但一些边缘情况令牌(例如给定节点的完整菜单路径)不是核心不会自动提供。

安装后,我相信 [node:menu-link:parent] 或 [node:menu-link:parent:url] 应该可以工作。


2
投票

适合我的模式如下:

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

我还按照 Eaten 的建议安装了 Token 模块。不知道

[node:menu-link:parent:url:alias]
是核心的一部分还是存在于 contrib 中。


1
投票

如果您尝试为第三级或更深的页面创建别名,例如:

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
添加到了令牌中,对于第一个令牌,我添加了两次。


0
投票

享受吧!

[节点:菜单链接:父母:加入路径]/[节点:标题].html


0
投票

这是我使用的解决方案:

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

它将用破折号分隔父菜单项。这就是我需要的。


0
投票

对于任何偶然发现这个答案并想知道如何添加此答案的人:

配置 > 搜索和元数据 > URL 别名,然后在“模式”选项卡下创建。

© www.soinside.com 2019 - 2024. All rights reserved.