Php 呈现单个FieldCollectionItemEntity字段

Php 呈现单个FieldCollectionItemEntity字段,php,drupal-7,Php,Drupal 7,我需要渲染字段集合中的各个字段,以便根据特定条件调整字段顺序、字段内容、删除包装DOM节点等 我一直在通读,因为它似乎是这个问题上最好的资源,但我不明白为什么这个字段集合渲染器不工作 它什么也不输出 node——组件图标promo.tpl.php <? if (!empty($content['field_icon_promo_items'])) : ?> <div id="node-<?php print $node->nid; ?>" class="

我需要渲染字段集合中的各个字段,以便根据特定条件调整字段顺序、字段内容、删除包装DOM节点等

我一直在通读,因为它似乎是这个问题上最好的资源,但我不明白为什么这个字段集合渲染器不工作

它什么也不输出

node——组件图标promo.tpl.php

<? if (!empty($content['field_icon_promo_items'])) : ?>

  <div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>

    <?php foreach ($content['field_icon_promo_items']['#items'] as $entity_uri): ?>
      <?php 
        $item = entity_load('field_collection_item', $entity_uri); 
      ?>

      <?php foreach ($item as $item_object ): ?>

        <?php print render($item_object->field_cta); ?>

      <?php endforeach; ?>
    <?php endforeach; ?>

  </div>

<? endif; ?>


建议这样使用,使用实体\元数据\包装器:

<? if (!empty($content['field_icon_promo_items'])) : ?>

  <div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>

    <?php foreach ($content['field_icon_promo_items']['#items'] as $entity_uri): ?>
      <?php 
        $item = entity_load('field_collection_item', $entity_uri);
      ?>

      <?php foreach ($item as $item_object ): ?>

        <?php 
            $wrapper = entity_metadata_wrapper('field_collection_item', $item_object);
            $field_cta = $wrapper->field_cta->value(); 
            //render your values with your own html or using theme_link function
        ?>

      <?php endforeach; ?>
    <?php endforeach; ?>

  </div>

<? endif; ?>


这段代码不像我需要的那样工作,但是元数据包装器将我推向了正确的方向!