我想对单个节点定制相应的外观,而不是对某一类节点定制外观.想实现node-nid.tpl.php形式的模板建议。怎么实现?和前面所讲的page-nodetype.tpl.php类似,需要向template.php中加一个函数,function garland_preprocess_node(&$vars) 。其代码如下:
if ($node = $vars['node']) {
$suggestions = array();
$suggestions[] = 'node-'. $node->type;
$suggestions[] = 'node-'. $node->nid;
// Clean up name so there are no underscores.
$vars['template_files']= $suggestions;
}
注意模板建议是由优先顺序的,在上面的代码中node-nid.tpl.php的优先级强于node-nodetype.tpl.php。原先我放反了,测试了几下,就发现$suggestions[] = 'node-'. $node->nid;应该放到下面。不然的话,如果对应的node-nodetype.tpl.php存在的话,那么node-nid.tpl.php就不起作用了。由于nid更特别,更具体一点,所以将它的优先级设得高一点。
相关链接: http://zhupou.cn