답변:
대신, 사용자 정의 모듈을 만들고 MODULENAME
모듈과 이름으로 field_image
당신의 필드의 이름 :
/**
* Implements hook_entity_view().
*/
function MODULENAME_entity_view($entity, $type, $view_mode, $langcode) {
if ($view_mode == 'teaser') {
$entity->content['field_image']['#items'] = array_slice($entity->content['field_image']['#items'], 0, 1);
}
}
자세한 내용은 hook_entity_view () 설명서를 참조하십시오.
if ($view_mode == 'teaser' && $entity->type == 'CONTENT_TYPE')
.
hook_field_extra_fields () 및 hook_node_view ()를 사용하여 원래 이미지 필드를 변경하지 않도록 첫 번째 이미지를 표시하는 새 필드를 작성했습니다.
hook_field_extra_fields ()는 노드 유형의 관리 디스플레이 탭에 나타날 새 필드를 초기화합니다.
function HOOK_field_extra_fields() {
$extra['node']['NODE_TYPE'] = array(
'display' => array(
'primary_image' => array(
'label' => t('Primary Image'),
'weight' => 0,
)
),
);
return $extra;
}
그런 다음 hook_node_view ()는 새 필드의 내용이 될 첫 번째 이미지를 추가하는 데 사용됩니다.
function HOOK_node_view($node, $view_mode, $langcode) {
if($node->type == 'NODE_TYPE' && $view_mode == 'teaser') {
//make sure there are images
if(!empty($node->field_images)) {
$node->content['primary_image'] = $node->content['field_images'][0];
//hide the original field with multiple images
hide($node->content['field_images']);
}
}
}
참고 : 디스플레이 제품군을 활성화 한 경우 디스플레이 관리 탭에서이 작업을 수행 할 수 있습니다.