我希望能够通过以编程方式将输出路径更改为Drupal节点,而无需使用PathAuto模块。我们目前正在处理大量的内容(每天成千上万的文章),这些内容被添加到后端。我想让Drupal输出默认链接,而不是使用PathAuto来生成路径别名,而是附加一个部分标题以获得更好的SEO。
例如:
/节点/ 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现有功能的子集(并可能引入许多新的错误)。