gpt4 book ai didi

php - 如何以编程方式输出 Drupal 节点链接的自定义路径(无 PathAuto)?

转载 作者:行者123 更新时间:2023-12-02 09:01:21 25 4
gpt4 key购买 nike

我希望能够以编程方式更改 Drupal 节点的输出路径,而无需使用 PathAuto 模块。目前,我们处理大量添加到后端的内容(每天数千篇文章)。我希望 Drupal 输出默认链接,但附加部分标题以实现更好的 SEO,而不是使用 PathAuto 生成路径别名。

一个例子是:

/节点/123

将更改为

/node/123/This-is-the-article-title(此路径当前适用于现有节点)

我了解如何通过修改主题/ View 模板在主题基础上执行此操作,但我想这样做,以便每当节点的链接显示在任何地方时,它都会添加标题插件。

此外,我想将其限制为某种内容类型(例如“文章”)。

我正在使用Drupal 5.x,并且我不想使用PathAuto(如果没有必要,我不想存储数十万个路径别名)

我正在寻找不使用 PathAuto 的解决方案

最佳答案

Drupal 有一个从“/node/1234/”映射到“/blogs/look-at-what-my-cat-just-did”的内部机制。它是核心系统的一部分,几乎在任何地方、每个请求都可以使用,甚至无需您询问。它的速度足够快,您几乎不会注意到它的发生 - drupal 中还有很多其他东西要慢得多。

如果您担心 URL 在前端的显示方式,您应该使用 url() 函数(以及对节点内容执行相同操作的过滤器)来处理相反的查找。

Pathauto 的作用是,当您创建或编辑内容时,它将在 Drupal 的 url_alias 表中生成许多条目(基于您创建的任何 pathauto 规则)。这是一次性成本。除非您以天文数字生成内容 - 这样做的相关成本可以忽略不计。

只需使用 Drupal,您就已经支付了查找 URL 别名的费用。如果没有黑客核心,你就无法真正避免它。在数据库中存储“数十万个路径别名”并不是什么大问题 - 如果将其分解为实际的存储需求,您只需要考虑几兆字节。由于该表有良好的索引,因此查找几乎是即时的。这是核心功能,无论 Pathauto 是否在您的系统上,都会发生。

除非您对要将节点映射到的 URL 类型有一些非常奇怪的要求,否则您所做的任何事情都只是重新创建 Pathauto 现有功能的子集(并且可能会引入一堆新错误)​​。

关于php - 如何以编程方式输出 Drupal 节点链接的自定义路径(无 PathAuto)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com