Skip to content

Views

I need to... Guide Summary
understand what Views are and when to use them Views System Overview You need to query and display lists of content, users, taxonomy terms, or other entities with filtering, sorting, and display formatting.
understand the views.view.*.yml config schema View Config Schema When writing or editing views.view.*.yml files directly, or understanding config structure for recipes and exports.
configure display options (title, access, cache, pager) Display Configuration When configuring common options shared across all display types: title, access, cache, pager, style, fields, filters, sorts.
create a page display with URL and menu integration Page Display When you need a full page with a dedicated URL, menu integration, and optional admin theme.
create a block display Block Display When you need a view placed in block regions, Layout Builder, or programmatically rendered contexts.
create a REST export (JSON/XML API) REST Export Display When you need JSON, XML, or other serialized output for APIs, AJAX endpoints, or headless/decoupled applications.
create feed or attachment displays Feed & Attachment Displays When you need RSS/Atom feeds or attaching views to other display outputs.
configure fields and field handlers Fields Configuration When configuring field output, labels, formatters, rewriting, and CSS classes in views using fields-based rows.
add filters and exposed filters Filters & Exposed Filters When restricting query results via fixed criteria (filters) or user-selectable criteria (exposed filters).
add sorting and contextual filters (arguments) Sort & Contextual Filters When ordering results (sorts) or filtering based on URL parameters (contextual filters/arguments).
configure entity relationships Relationships When you need to access fields from related entities (entity references, users, taxonomy terms, etc.) or apply filters/sorts on related entity data.
configure pagers (full, mini, load more) Pager Configuration When controlling how many items display per page and how users navigate through results.
configure caching strategies Caching Configuration When optimizing view performance by caching query results and rendered output.
configure access control Access Control When restricting who can view a display based on permissions or roles.
choose style and row plugins Style & Row Plugins When configuring how Views formats output (style) and renders individual rows (row).
configure query settings (distinct, aggregation, etc.) Query Settings When tuning the underlying database query for performance, distinct results, or query debugging.
export views config or use in recipes Config Export & Recipes When managing views as exportable configuration, deploying via config sync, or packaging in recipes.
modify views programmatically via hooks Programmatic Modification When config-based approach isn't sufficient: runtime view modification, dynamic filter injection, custom display logic.
understand Views plugin architecture Views Plugin Architecture When Views UI configuration and programmatic view modification aren't sufficient — you need custom data processing, specialized formatting, or integration with non-standard data sources.
create a custom field handler Custom Field Handler When you need custom field output: computed values, external API data, complex formatting that can't be achieved with field templates or rewrite rules.
create a custom filter handler Custom Filter Handler When standard filter operators aren't sufficient: custom logic, complex conditions, integration with external validation, multi-field filters.
create a custom sort handler Custom Sort Handler Custom sort logic: computed fields, weighted sorting, multi-column sorts, integration with external ranking systems.
create a custom argument handler Custom Argument Handler URL-based filtering with custom logic: argument validation, default values, custom summary views, title overrides.
create a custom relationship handler Custom Relationship Handler Complex JOIN logic beyond standard entity reference relationships: multi-column joins, conditional joins, subquery-based relationships.
create a custom display plugin Custom Display Plugin New output channel beyond Page/Block/REST: CLI output, email rendering, queue processing, specialized API formats.
create custom style or row plugins Custom Style & Row Plugins Style Plugin: Custom result set formatting (calendar, timeline, accordion) that standard Table/Grid/List can't achieve. Row Plugin: Custom per-row rendering (entity cards, custom templates) reusable across multiple views.
create a custom cache plugin Custom Cache Plugin Specialized caching beyond time-based and tag-based: per-user caching, geolocation-based, A/B testing variants, external cache backends.
integrate custom data with Views (hook_views_data) Views Data Integration Exposing custom database tables, altering entity views integration, defining custom handlers for existing fields, adding computed/pseudo-fields.
follow Views best practices Best Practices Guidelines for building maintainable, performant, secure views.
avoid common Views anti-patterns Anti-Patterns What NOT to do and WHY.
secure Views and optimize performance Security & Performance Critical security and performance considerations for production views.
find Views core code references Code Reference Map
understand guide sources and maintenance Sources & Maintenance