Skip Navigation

[Resolved] Hide empty filters

This thread is resolved. Here is a description of the problem and solution.

Problem:
The user would like to hide a filter when the visible results do not have a filter term assigned

Solution:

  • The view must be configured to not display filter terms when no results are assigned. Check this screenshot https://toolset.com/wp-content/uploads/2018/10/1132932-Screenshot_2018_10_23_at_10.05.17_AM.png
  • Add a Javascript code to the view that checks for empty filters and hide their parent(includes the label)
    jQuery(function($){
      $('#term-archive form select').each(function(){
        var select = $(this);
        var options = select.find('option')
        if ( ! options.length) {
          select.parent().hide()
        }
      })
    })
    

Notice:
Depending on how you are creating your forms, labels, controls, etc... the Javascript code might need to be adapted. In this example, we used the id "term-archive" and we hide the parent form-group of the filter(select)

Relevant Documentation:
https://toolset.com/documentation/user-guides/views/front-page-filters/advanced-settings-custom-search/

This support ticket is created 4 years, 7 months ago. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Sun Mon Tue Wed Thu Fri Sat
9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 - - 9:00 – 13:00
14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 - - 14:00 – 18:00

Supporter timezone: Africa/Casablanca (GMT+01:00)

This topic contains 3 replies, has 2 voices.

Last updated by romanB-3 4 years, 7 months ago.

Assisted by: Jamal.

Author
Posts
#1577047

Hello,
I have an Archive page with 4 taxonomy filters displayed on frontend.
Most of terms displayed with this Archive page only have some of those taxonomies, and not all of them.
I would need the filters to display only if there is at least one term for the taxonomy.
Please see an example here : hidden link
Thank you.

#1577495

Hello and thank you for contacting the Toolset support.

You will need to customize the search setting of your view similar to this screenshot https://toolset.com/wp-content/uploads/2018/10/1132932-Screenshot_2018_10_23_at_10.05.17_AM.png
That way you can choose to hide/deactivate the filters when there are no terms on the results.
https://toolset.com/documentation/user-guides/views/front-page-filters/advanced-settings-custom-search/

I hope this helps. If it does not, please allow me temporary access to your website to check this further. Your next reply will be private to let you share credentials safely.
** Please make a database backup before sharing credentials **

#1577517

The settings that I suggested affect the filter in a way that no terms that are not on the results will be on the filter control, but it does not hide the control itself. For that, I added a Javascript code and an id to the column of the filters to be able to hide the controls that do not have any result assigned to their terms.

jQuery(function($){
  $('#term-archive form select').each(function(){
    var select = $(this);
    var options = select.find('option')
    if ( ! options.length) {
      select.parent().hide()
    }
  })
})

I already updated your view. Please check if this produces what would you expect.

#1577521

That is awesome !!
Thank you very much !!