我希望将一种内容类型的节点/%节点页面重定向到其相关的另一种内容类型节点/%节点页面
答案 0 :(得分:5)
使用hook_menu_alter()
,更改node/%node
的页面回调。在页面回调中,检查节点的类型以在节点上调用node_page_view
或重定向到引用的节点。
MODULE_menu_alter(&$items) {
$items['node/%node']['page callback'] = 'MODULE_node_page_view';
}
MODULE_node_page_view($node) {
if ($node->type == MODULE_NODE_TYPE) {
$referenced_node = MODULE_get_related_node($node);
drupal_goto('node/'. $referenced_node->nid);
}
else {
return node_page_view($node);
}
}
答案 1 :(得分:2)
执行重定向的功能是drupal_goto()
。
例如,您可以通过在自定义模块中实现hook_init()
来执行此操作,检查路径是否为node / something,加载节点以及是否为X类型,重定向。
答案 2 :(得分:-1)
这也可以通过将<?php drupal_goto($related_url); ?>
放在主题文件夹中的node-yourcontenttype.tpl.php中来完成。