Skip to content

Media views

15. Media in Views

When to Use

You need to display collections of media: galleries, media listings, search results.

Decision

Display Style Use Case
Grid of rendered entities Image gallery, media grid
Table of fields Media management, metadata display
Slideshow/carousel (contrib) Hero slideshows, featured media
Media Library (core view) Admin media browser (see Media Library Views)

Pattern

Media gallery view:

# config/sync/views.view.media_gallery.yml
langcode: en
status: true
dependencies:
  config:
    - core.entity_view_mode.media.card
    - media.type.image
  module:
    - media
    - user
id: media_gallery
label: 'Media Gallery'
module: views
description: 'A grid of media items.'
tag: media
base_table: media_field_data
base_field: mid
display:
  default:
    display_plugin: default
    display_options:
      title: 'Media Gallery'
      fields:
        rendered_entity:
          id: rendered_entity
          table: media
          field: rendered_entity
          plugin_id: rendered_entity
          label: ''
          view_mode: card
      filters:
        status:
          id: status
          table: media_field_data
          field: status
          value: '1'
          plugin_id: boolean
        bundle:
          id: bundle
          table: media_field_data
          field: bundle
          value:
            image: image
          plugin_id: bundle
      sorts:
        created:
          id: created
          table: media_field_data
          field: created
          order: DESC
          plugin_id: date
      pager:
        type: full
        options:
          items_per_page: 12
      style:
        type: grid
        options:
          columns: 3
          row_class: 'media-card'
  page_1:
    display_plugin: page
    path: '/gallery'
  block_1:
    display_plugin: block
    block_description: 'Media Gallery'

Contextual filter for media by taxonomy:

# Add to view display config:
arguments:
  field_tags_target_id:
    id: field_tags_target_id
    table: media__field_tags
    field: field_tags_target_id
    plugin_id: taxonomy_term_id
    default_action: 'not found'
    default_argument_type: fixed
    validate:
      type: taxonomy_term

Common Mistakes

  • Using fields display for galleries → loses view mode control; use rendered entity with view mode: card
  • Not filtering by published status → shows unpublished media; add status filter: value: '1'
  • Exposing all media types → mixed galleries confusing; filter by bundle
  • Not setting view mode → uses "default" which may be too large; use context-appropriate view mode
  • Using thumbnail field instead of rendered entity → bypasses formatter config; render full entity with view mode

See Also