【问题标题】:Need help adding template for single page in Drupal 7需要帮助在 Drupal 7 中添加单页模板
【发布时间】:2015-02-25 14:32:45
【问题描述】:

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

【问题讨论】:

  • 你有没有丢弃你的缓存?
  • 是的,缓存已被多次清除。还有其他推荐吗?

标签: php templates drupal drupal-7 drupal-themes


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在你的主题目录的 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 应替换为您的主题名称

    【讨论】:

    • 感谢您的回复。当我执行此过程时,我的页面只是以文本格式吐出您上面的代码。
    • 其实我撒了谎。我得到以下内容......'调用时传递引用已被删除'。有什么想法吗?
    【解决方案3】:

    这取决于您要覆盖的模板和主题。
    但通常这会起作用。
    用“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 的,不需要双破折号。

    您可以提出自己的建议,但我认为以上内容将满足您的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 2017-07-01
      • 1970-01-01
      相关资源
      最近更新 更多