Combined Exposed Filters turns several exposed filters of a View display into a single widget: one flat row of options - every option of every filter it combines - where one option is in force at a time. It is the module for the row of tabs a listing page is so often led by ("All / Regulations / Circulars / Guides"), including the case the usual tab modules do not reach: a row whose options come from more than one filter.
Features
Combine the options of two or more exposed filters into one widget - two vocabularies, a vocabulary and a content type, a list field and a checkbox - so they read as one sequence.
Every option is rendered as a link, so the widget works without JavaScript, survives being bookmarked and shared, and is cached like any other page of the view.
Exposed sorts get the same treatment, either joining the filters in one row or standing as a second row of their own, above, below or beside the first.
Four widgets ship with the module: Tabs, Select list, Autocomplete and Links. Widgets are plugins, each with a template of its own, so a theme can override one or a site can add another.
Option labels are editable per display, so the label a visitor sees does not have to be the term or field name behind it.
Configuration lives on the display, as a Views display extender, so it is exported with the view in configuration management like every other Views setting.
Post-Installation
There is no settings page. Everything the module does is two settings on a view display, under Advanced, Exposed form, named Combined filters and Combined sorts. The animation above walks through all of it.
1. Expose what the row should be made of. Edit the view. Under Filter criteria, open each filter the row should hold and tick "Expose this filter to visitors, to allow them to change it". Under Sort criteria, do the same with "Expose this sort to visitors". Only a filter that has a list of options to give can join a row, so a search box, a number or a date never can, and a taxonomy filter counts only where its selection type is "Dropdown" or "Autocomplete". A filter that accepts several values at once is left out too.
2. Open Advanced, Exposed form. Two rows stand there beside the usual ones, reading for example "Combined filters: Document type, Publication" and "Combined sorts: Date, Title".
3. Combined filters holds:
- Filters to combine. Every option of every ticked filter becomes one option of a single widget, in the order the filters are in under "Rearrange". The ticked filters leave the rest of the exposed form, and one option is in force at a time: choosing an option of one filter clears the others.
- Widget. Tabs, Select list, Autocomplete or Links.
- Label. Names the widget for screen readers, and for any widget whose template prints it. Leave empty to use no label.
- Show an option only once. Two filters may offer options that read the same, the same term name in two vocabularies. Ticked, the first is kept and the later ones left out.
- Add an option that clears the set, and Label of that option. A first option, in force while none of the combined filters is, that links back to the unfiltered list. "All" by default.
- Most options a filter may give. A filter with more options than this is left out of the set, keeping the element of its own that it had. 100 by default; 0 for no limit.
- Options to show at first. How many options the row shows before the rest are folded away behind a button naming how many are left. 0 shows every option. The fold is done in the browser, so a reader without JavaScript is shown every option rather than none.
- Option labels. What the row calls each option. Leave one empty to keep it out of the row altogether.
- Templates. The template names this set may be overridden by.
4. Combined sorts holds:
- Where the sort options go. "In the row the filters make", so one row where choosing how to sort clears the filter a reader had chosen; or "In a row of their own", a second widget beside the first, where a filter and a sort are in force together.
- Label of that row, and Where that row goes: under the filters, over them, or beside them on one line.
- Widget of that row. "The same as the filters", or a widget named here, so a list may be sorted by a drop-down while it is filtered by a row of tabs.
- Sorts to combine. A ticked sort joins the row as an option per direction it may run in ("Authored on, Asc" and "Authored on, Desc"), or as one option where the exposed form offers no direction.
- The "Sort by" and "Order" drop-downs. What Views prints for the sorts that did not join the row: hide either, or rename it.
- Option labels. A sort reads better as "Newest" than as the pair of its field and its direction.
Note that Views does not inherit display extenders from the Default display, so set this on the display that is actually shown, the page or the block, and not on Default.
Installing the module adds its display extender to views.settings, which is what makes the two settings appear in the Views UI. Uninstalling removes it again and leaves what the views already hold, so reinstalling brings every set back.
Additional Requirements
Views, in Drupal core. Nothing else: no external libraries, no contributed dependencies.
Recommended modules/libraries
None required. The module is a complement to core Views rather than an extension of any other contributed project.
Ask your assistant about Combined Exposed Filters
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.x-dev | Dev | 10–11 | Nov 3, 2026 | ||
| 1.0.0-beta1 | Pre-release | 10–11 | Nov 3, 2026 |