Answers:
因此,您正在寻找一种修改链接URL的方法吗?我最近对此进行了调查,并对需要多少狩猎感到惊讶。
我使用了hook_url_outbound_alter( &$path, &$options, $original_path )
,它允许您更改Drupal URL系统正在编写的链接URL。
还有hook_url_inbound_alter( &$path, $original_path, $path_language )
,可能会更好,因为它包括路径的特定语言-这取决于您要在哪里进行更改。我个人觉得hook_url_outbound_alter()
可靠且简单-使用它可以更改所有适当的URL,并且可以使用$ options可靠地添加和编辑查询字符串(...?query = string&foo = bar)和哈希值(... #someId)。
修改$ path,它将更新写入URL href中的实际路径。当然,这会在所有链接上运行,因此您首先要检查它是否是要修改的链接。
它是在别名之前执行的,因此它将基于Drupal的默认值。如果仅想修改分类法路径,请举两个非常简单的示例:
function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
if(strpos($original_path, 'taxonomy/term') === 0) {
// do stuff
}
}
和/或如果只希望它在特定页面上运行,例如节点编辑页面:
function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
$current_path = explode("/", current_path() );
if (count($current_path) >= 3 && $current_path[0] == "node" && $current_path[2] == "edit") {
// do stuff
}
}