【发布时间】:2012-09-12 22:12:50
【问题描述】:
我有一个简单的问题。我的内容类型(标题图像)中有一个字段,必须以page.tpl.php 打印(因为布局)。
它工作正常,我在theme_preprocess_page() 函数中添加了一些代码以在 page.tpl.php 中显示该字段
function theme_preprocess_page( &$variables, $hook )
{
$node = menu_get_object();
if( $node && $node->type == 'page' )
{
$view = node_view($node);
$variables['headerimage'] = render($view['field_headerimage']);
}
}
现在我在从节点视图中隐藏该 field_headerimage 时遇到问题。它不能从管理 ui 中隐藏(内容类型 -> 管理显示),因为如果我从那里隐藏它,它在 theme_preprocess_page() 中也将不可用。
所以我尝试从 preprocess_node 隐藏该字段
function theme_preprocess_node( &$variables, $hook )
{
if( $variables['page'] )
{
hide($variables['field_headerimage']);
unset($variables['field_headerimage']);
$variables['field_headerimage'] = NULL;
}
}
我添加了我尝试将其从显示中删除的每一行代码。我究竟做错了什么?或者:你如何隐藏theme_preprocess_node()的字段
【问题讨论】: