执行node_view时如何使用自定义模板文件?

时间:2015-09-02 19:28:18

标签: php drupal drupal-7 drupal-theming

我正在尝试与使用drupal_render(node_view($node));的模块集成以获取渲染节点。我有一个自定义模板文件node--<type>.tpl.php,只需查看节点就可以正常工作,但是,当使用node_view渲染节点时,不使用模板文件,而是使用模块中的核心node.tpl.php / node使用。我还实现了hook_preprocess_node,在这种情况下似乎也没有。

重新创建它的一个简单案例是实现hook_preprocess_node并包含监视程序消息。然后在devel execute php中执行以下命令:

$node = node_load(<nid>);
print drupal_render(node_view($node));

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

问题在于,在其他模块执行node_view功能时,它使用的是管理主题而不是公共主题。

为了消除此问题,我实施了hook_theme_registry_alter并将自定义模板放在自定义模块中。这样,无论选择哪个主题,都可以使用它们。