如何在Drupal 6中为不同的节点添加不同的模板


How to add different template for different nodes in Drupal 6

我的站点中有 3 个节点。

  1. 节点/1 - 登录
  2. 节点/2 - 联系方式
  3. 节点/3 - 寄存器

我想为不同的节点使用不同的模板。如果我作为页面节点 1.tpl.php 、页面节点 2-tpl.php ,它适用于整个页面,我不想要那个,我想专门覆盖节点内容。

我已经尝试了以下链接:-

  • Drupal 6 中特定节点的自定义模板?
  • 在Drupal 7中为不同的节点使用不同的模板

我正在使用Drupal 6

我已经有一段时间没有使用 Drupal 6

了,但据我所知,Drupal 6 的默认节点模板不会有基于节点 ID 的模板建议。

这并不意味着您无法从自定义主题中执行此操作。

<?php
function THEMENAME_preprocess_node(&$vars) {
    $vars['template_files'][] = 'node-' . $vars['nid'];
}
?>

在主题的模板.php中,添加上述代码,替换主题名称(或者合并函数内容,如果您已有该功能)。这将使Drupal检查node-123.tpl.php文件(123是一个示例节点ID),并将使用它来代替node.tpl.php

既然您提到您将使用node/1或任何节点内容来嵌入登录表单,那么让我告诉您这不是一个好主意。当站点处于维护模式时,登录表单需要可访问,以后使用不同的部署环境可能很难管理它们。不过,这部分与问题完全无关。