【问题标题】:cannot get drupal 7 to recognize a page template for a content type无法让 drupal 7 识别内容类型的页面模板
【发布时间】:2015-01-08 16:07:09
【问题描述】:

我有一个 drupal 7 网站,我想在上面制作二级首页。问题在于“page--front.tpl.php”是两列布局,而“page.tpl.php”是一列布局。如果我使用节点模板,它会将它推到一列的正文中。

主题名称是“egress”,内容类型的机器名称是“landing”,但是当我尝试挂钩页面时——以与节点相同的方式登陆——登陆没有任何反应。什么都没有。

每次更改模板文件时,我都会清除缓存并刷新页面。

我在“page.tpl.php”中尝试过的一个代码

function egress_preprocess_page(&$vars) {
    global $node;
    if ($node->type == 'landing') {
        $vars['theme_hook_suggestions'] = array('page__landing'); 
    }
}

另一个

function egress_preprocess_page(&$vars) { 
    if ($vars['node']->type == "landing_page") {
        $vars['template_files'][] = 'page--landing';
    }
}

任何人的想法?

【问题讨论】:

  • 尝试退出;在您的代码中查看它是否正在运行,如果没有尝试重置您的主题注册表然后查看会发生什么。

标签: php templates drupal-7 hook drupal-theming


【解决方案1】:

以下内容应该转到您主题的 template.php 而不是 page.tpl.php

function egress_preprocess_page(&$vars) {
    // For page--(node-type).tpl.php
    if (isset($vars['node'])) {
        $vars['theme_hook_suggestions'][] = 'page__'. $vars['node']->type;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    相关资源
    最近更新 更多