Skip to content

Better Exposed Filters

I need to... Guide Summary
Understand what BEF does vs core exposed filters Overview Use Better Exposed Filters when you need more control over how Views exposed filters are rendered — replacing default select dropdowns with checkboxes, radio buttons, links, sliders, date pickers, or other widgets. Use core exposed filters…
Install BEF and enable it on a View Installation & Setup Use this guide when installing BEF on a Drupal site and enabling it for Views.
Configure auto-submit, secondary panel, reset button General Settings Use this guide when configuring BEF's global options that apply to all exposed filters on a View — auto-submit, secondary options panel, reset button, and input-required behavior.
Use checkboxes or radio buttons for filters Checkboxes & Radio Buttons Widget Use this widget when you want to replace a select dropdown with checkboxes (multi-select) or radio buttons (single-select) on an exposed filter. Use the Links widget when you want clickable URL-based navigation instead.
Render filters as clickable links Links Widget Use this widget when you want filters rendered as clickable links instead of form elements — useful for faceted navigation style where each option is a URL. Use checkboxes when form-based interaction (submit button) is preferred.
Add range sliders for numeric filters Sliders Widget Use this widget when you have a numeric filter (price, quantity, rating) and want a visual range slider instead of text inputs. Use the number widget for simple min/max inputs without visual slider.
Use HTML5 date pickers Date Pickers Widget Use this widget when you have a date filter and want HTML5 <input type="date"> instead of a text field. Use the hidden widget for date filters you want to set programmatically without user input.
Use hidden, single checkbox, or number widgets Hidden & Special Widgets Use the hidden widget to pre-set filter values without showing them to users. Use the single checkbox widget for boolean filters (on/off).
Customize sort display (radio/links/combine) Sort Widgets Use this guide when you have exposed sort criteria and want radio buttons or links instead of dropdowns, or want to combine sort_by and sort_order into a single control.
Customize pager display Pager Widgets Use this guide when you have an exposed pager (items per page) and want to render it as radio buttons or links instead of a dropdown.
Configure auto-submit behavior precisely Auto-Submit Use auto-submit when you want the View to refresh automatically when users change filter values, without requiring a manual "Apply" button click. Avoid auto-submit on mobile without a breakpoint guard.
Move filters into a collapsible secondary panel Secondary & Collapsible Options Use secondary options when you have many exposed filters and want to group less-used ones into a collapsible "Advanced options" panel. Use per-filter collapsible when you want individual filters wrapped in their own toggleable details…
Rewrite filter option labels or sort them Option Rewriting & Sorting Use option rewriting when you need to change display labels of filter options or remove options. Use option sorting when you need alphabetical or key-based ordering instead of the default Views order.
Override BEF templates in my theme Theming & Templates Use this guide when you need to customize the HTML output of BEF widgets in your theme.
Create a custom BEF widget plugin Custom Widget Plugins Use this guide when the built-in BEF widgets don't meet your needs and you want to create a custom filter, sort, or pager widget. Use hook_better_exposed_filters_options_alter() for simpler runtime changes that don't require a new plugin.
Understand BEF's JavaScript behaviors JavaScript Behaviors Use this guide when you need to understand or customize BEF's client-side behavior — auto-submit, sliders, select all/none, soft limit, or link AJAX.
Alter BEF options with hooks Hooks & Alter Functions Use hooks when you need to programmatically modify BEF behavior — changing options, setting slider ranges dynamically, or altering widget availability — without creating a custom widget plugin.
Use BEF with AJAX Views, Facets, or Search API Integration Patterns Use this guide when combining BEF with other Drupal modules — Views AJAX, Facets, Search API, Select2, or Chosen.
Understand BEF's config schema for export/import Configuration Schema Use this guide when exporting/importing BEF configuration, creating custom widgets that need config schema, or debugging config validation errors.
Debug BEF issues and avoid anti-patterns Common Mistakes Use this guide when debugging BEF issues or reviewing BEF configuration for problems.