我希望在page.tpl.php中单独渲染每个字段。我的情况是,我有一个图像字段,无限值和幻灯片格式。我希望使用幻灯片格式呈现此字段,并将其放在我想要的位置。
我已尝试过以下操作,但这不适用于正确的格式,它只是以默认格式输出:
$field_view_field_field_banners = field_view_field('node', $node, 'field_banners');
$field_view_field_field_banners['#formatter'] = 'slideshow'; // I added this because the formatter was 'image'
echo render($field_view_field_field_banners);
非常感谢任何帮助!
答案 0 :(得分:1)
field_view_field
所采用的第四个参数可以是视图模式的名称,也可以是显示设置键的数组:label
,type
,settings
,和weight
。
看起来您正在尝试指定字段的格式,但正在发生的事情是field_view_field
正在寻找名为“幻灯片”的视图模式(如默认或预告片)。
而不是
$foo = field_view_field('node', $node, 'field_banners', 'slideshow');
尝试:
$foo = field_view_field('node', $node, 'field_banners', array('type' => 'slideshow'));
第二个问题的答案基于上面的问题。区别在于视图模式和字段格式化程序。当你导航到
时很可能/admin/structure/types/manage/foo/display
您有两种默认查看模式:Default
和Teaser
。如果您在默认视图模式下将field_banners
字段设置为使用slideshow
格式化程序,则无需使用第四个参数,因为将使用“默认”视图模式没有指定。
在那种情况下,您可以这样做: $ foo = field_view_field('node',$ node,'field_banners');
和$foo
在呈现时会有slideshow
格式。
查看field_view_field的Drupal API文档。