需要帮助在 Drupal 7 中为单页添加模板

Need help adding template for single page in Drupal 7

我在这方面需要一些帮助。我在这里到处寻找答案,发现了一个类似的问题,但答案对我不起作用。我在 drupal 7 中建立了一个名为 "new-setup" 的新页面。此页面的节点 ID 为 3。我创建了一个自定义主题 'new-theme',它作为文件夹存在于 sites/all/themes 中。到目前为止一切都很好......这是添加新页面的默认主题。但是,我需要为我的 "new-setup" 页面设置一个页面模板。我在我的 'new-theme' 中添加了一个模板文件夹,并添加了一个 'page-node-3.tpl.php' 模板,因为我的 'new-setup' 页面的节点 ID 为“3”。在其他板上,这似乎是设置模板的正确途径,但我已经尝试了几个小时,但无法正常工作。非常感谢任何帮助!

在你的主题目录的 template.php 中放一些类似

的东西
XXXX_preprocess_page($vars) { 
    if (isset($vars['node']) && $vars['node']->id == 3 ) { 
        array_unshift($vars['theme_hook_suggestions'], "page__bar"); 

    }
}

这将使用 page--bar.tpl.php 作为 id 3 的节点 XXXX 应替换为您的主题名称

这取决于您要覆盖的模板和您的主题。
但通常这会起作用。
用 "page--node--3.tpl.php" 覆盖 page.tpl.php。
用 "html--node--3.tpl.php" 覆盖 html.tpl.php。
用 "node--3.tpl.php"

覆盖 node.tpl.php

所有概述都在:Drupal 7 Template (Theme Hook) Suggestions

如果我没记错的话,您正在转发的帖子可能是针对 Drupal 6 的,不需要双破折号。

您可以创建自己的建议,但我认为以上内容将符合您的目的。

在您的主题目录中创建 page--node--3.tpl.php 文件并清除缓存。