Câu trả lời:
Tạo một mô-đun tùy chỉnh, thay thế MODULENAME
bằng tên của mô-đun và field_image
bằng tên của trường của bạn:
/**
* 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);
}
}
Xem tài liệu hook_entity_view () để biết thêm chi tiết.
if ($view_mode == 'teaser' && $entity->type == 'CONTENT_TYPE')
.
Không cần phải viết mã tùy chỉnh.
Hãy thử sử dụng mô-đun nhiều giới hạn Trường .
Nó cho phép bạn đi vào cài đặt hiển thị cho loại nội dung của mình và định cấu hình cài đặt trêu ghẹo để chỉ hiển thị một lượng giá trị nhất định. Bạn thậm chí có thể làm cho nó bỏ qua các giá trị, ví dụ nếu bạn muốn nó hiển thị các giá trị 2 đến 5
.
Tôi đã sử dụng hook_field_extra_fields () và hook_node_view () để tạo trường mới để hiển thị hình ảnh đầu tiên để tôi không bị giả mạo với trường hình ảnh gốc.
hook_field_extra_fields () khởi tạo trường mới sẽ xuất hiện trên tab hiển thị quản lý loại nút của bạn.
function HOOK_field_extra_fields() {
$extra['node']['NODE_TYPE'] = array(
'display' => array(
'primary_image' => array(
'label' => t('Primary Image'),
'weight' => 0,
)
),
);
return $extra;
}
Sau đó hook_node_view () được sử dụng để thêm hình ảnh đầu tiên làm nội dung của trường mới của bạn.
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']);
}
}
}
LƯU Ý: Nếu bạn đã bật bộ hiển thị, bạn có thể thực hiện việc này trong tab quản lý hiển thị.