【发布时间】:2012-09-04 17:34:45
【问题描述】:
如何覆盖drupal首页node.tpl文件?我尝试了各种
node--front.tpl.php
page--node--front.tpl.php
page--front--node.tpl.php
但它不起作用。
覆盖主页节点的文件名是什么? (我在 drupal 7 工作)
【问题讨论】:
如何覆盖drupal首页node.tpl文件?我尝试了各种
node--front.tpl.php
page--node--front.tpl.php
page--front--node.tpl.php
但它不起作用。
覆盖主页节点的文件名是什么? (我在 drupal 7 工作)
【问题讨论】:
您可以将此功能添加到主题template.php中
function customethemename_preprocess_node ( &$vars ) {
if ($vars["is_front"]) {
$vars["theme_hook_suggestions"][] = "node__front";
}
}
然后就可以分页page--front.tpl.php
解决问题
【讨论】:
应该是page--front.tpl.php
此外,请确保您的主题的层次结构中有前体(例如page.tpl.php)
【讨论】:
我建议通过将特定的内容节点设置为首页来解决此问题。
http://www.inmotionhosting.com/support/edu/drupal-7/homepage/change-front-page
然后我会使用特定的节点 ID 模板。
node--[insert id here].tpl.php 即node--1.tpl.php
你需要做两件事才能让它起作用:
【讨论】:
无需手动开发首页,只需通过浏览量或其他方式创建首页并将其设置为首页:
www.yoursite.com/?q=admin/config/site-information
【讨论】:
以下步骤解决了我在 Drupal 7 中创建自定义首页的问题。
【讨论】:
我认为最好的解决方案是使用首页 nid
function YOURTHEME_preprocess_node ( &$vars ) {
list(, $frontpage_nid) = explode('/', drupal_get_normal_path(variable_get('site_frontpage', 'node')));
if ($vars['node']->nid == $frontpage_nid) {
$vars['theme_hook_suggestions'][] = "node__frontpage";
}
}
因为
if ($vars["is_front"]) {
$vars["theme_hook_suggestions"][] = "node__front";
}
为首页中的所有节点添加主题建议,而不仅仅是首页节点
【讨论】: