| 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 |
|