如何以编程方式为Drupal Node Links(没有PathAuto)输出自定义路径?

jon*_*ohn 2 php drupal

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

一个例子是:

/节点/ 123

会变成

/ node/123 /这是文章标题(此路径目前适用于现有节点)

我理解如何在主题的基础上,通过修改主题/视图模板,但我想这样做,以便任何时候任何地方显示节点的链接,它添加标题插件.

另外,我想将其限制为某种内容类型(例如,"文章").

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

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

Sea*_*ing 5

Drupal有一个内部机制,用于从"/ node/1234 /"映射到"/ blogs/look-at-what-my-cat-just-did".它是核心系统的一部分,几乎在任何地方都可以用于每一个请求,甚至不用问.它足够快你几乎从来没有注意到它发生 - 在drupal中还有很多其他东西 - 更慢 - 更慢.

如果您担心的URL是如何被显示在前端 - 你应该使用url()函数(和过滤器,做相同的节点内容)来处理一下起坐走另一条路.

凡Pathauto进来的是,当你创建或编辑内容,它会生成一个号码在Drupal的url_alias表项(根据您所创建的任何pathauto规则).这是一次性费用.除非你以天文数字生成内容,否则与此相关的成本可以忽略不计.

您已经通过简单地使用Drupal来支付查找URL别名的成本.没有黑客核心,你无法真正避免它.在数据库中存储"十万路径别名"是不是什么大不了的事 - 如果你打破下来到实际的存储需求,你只看着兆屈指可数.由于表格索引良好,因此查找将几乎是即时的.这是核心功能,无论Pathauto甚至在您的系统上,都会发生这种情况.

除非你有你想你的节点映射到,任何你做将简单地重建的Pathauto现有功能的子集(可能引入了大量新的bug)的URL类型的一些非常奇怪的要求.