Problem: I have a custom search View with two control fields. I would like to require the User to select a value in both fields before any results are shown. As it is now, when the page loads all the results are shown. I would like to show no results.
Solution: @e have an API that is helpful for this situation: wpv_filter_query_post_process. This will allow you to intercept the search results and test the query. If either option is blank, or 0, show no results.
// custom filter that shows no search results if either filter is empty add_filter( 'wpv_filter_query_post_process', 'drop_empty_search_query_post_process', 10, 3 ); function drop_empty_search_query_post_process( $query, $view_settings, $view_id ) { $ids = array(12345); if (in_array($view_id, $ids)){ if ( // supplier type filter needs to check for not '0' as well as not empty ( isset($_GET['wpv-supplier-category']) && $_GET['wpv-supplier-category'] != '0' ) && // location filter needs to check for not '0' as well as not empty ( isset($_GET['wpv-area-served']) && $_GET['wpv-area-served'] != '0' ) ) { } else { $query->posts = array(); $query->found_posts = 0; $query->post_count = 0; } } return $query; }
Replace 12345 with the numeric ID of this View. You can customize the "No results found" message in the View's Loop Output editor panel.
Relevant Documentation:
https://toolset.com/documentation/programmer-reference/views-filters/#wpv_filter_query_post_process
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.
No supporters are available to work today on Toolset forum. Feel free to create tickets and we will handle it as soon as we are online. Thank you for your understanding.
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
8:00 – 12:00 | 8:00 – 12:00 | 8:00 – 12:00 | 8:00 – 12:00 | 8:00 – 12:00 | - | - |
13:00 – 17:00 | 13:00 – 17:00 | 13:00 – 17:00 | 13:00 – 17:00 | 13:00 – 17:00 | - | - |
Supporter timezone: America/New_York (GMT-04:00)
This topic contains 4 réponses, has 2 voix.
Last updated by davidL-10 Il y a 5 années et 10 mois.
Assisted by: Christian Cox.