Yes, you would need to edit the results.php file, as indicated here (changing the ID shown to match that of your form):
global $searchandfilter;
$sf_current_query = $searchandfilter->get(11690)->current_query();
if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
echo '<div>Nothing to see here folks!</div>';
} else {
// the current resuts.php code here (ALL the code from the if ( $query->have_posts() ) line and onwards)
}
Thanks for the help, I tried, the results.php page is composed as follows:
global $searchandfilter;
$sf_current_query = $searchandfilter->get(11690)->current_query();
if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()==””)) {
echo ‘<div>Nothing to see here folks!</div>’;
} else {
// the current resuts.php code here
}
?>
<?php
while ($query->have_posts())
{
$query->the_post();
If I go to https://www.staging2.biotechmed.it/farmacie/ it shows me all the results… My client does not want that someone can easily see all the results and download all the names.
Another question, is it possible to search only in two specific fields and ignore the others in the search?
Once you have a copy of the results.php file in a search-filter sub-folder of your theme, you can edit that file, like this (leave the PHP comments at the top outside and before this code):
global $searchandfilter;
$sf_current_query = $searchandfilter->get(11690)->current_query();
if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
echo '<div>Nothing to see here folks!</div>';
} else {
// the current resuts.php code here
}
This code will prevent any results from showing UNTIL a search has been made. If you need to modify it a little, at least it should give you some ideas.
You can show ALL results (no pagination) if you set in the form on the General settings tab the ‘Results per page’ to -1.
The you need to remove the pagination output from the results.php code, so delete the two blocks that look like this (one before the loop, one after):
Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?><br />
<div class="pagination">
<div class="nav-previous"><?php next_posts_link( 'Older posts', $query->max_num_pages ); ?></div>
<div class="nav-next"><?php previous_posts_link( 'Newer posts' ); ?></div>
<?php
/* example code for using the wp_pagenavi plugin */
if (function_exists('wp_pagenavi'))
{
echo "<br />";
wp_pagenavi( array( 'query' => $query ) );
}
?>
</div>
Once you have a copy of the results.php file in a search-filter sub-folder of your theme, you can edit that file, like this (leave the PHP comments at the top outside and before this code):
global $searchandfilter;
$sf_current_query = $searchandfilter->get(8702)->current_query();
if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
echo '<div>Nothing to see here folks!</div>';
} else {
// the current resuts.php code here
}
If you are using Ajax, you need these filter labels inside the Ajax Container. If you want them to be shown elsewhere on the page, you still have them, but hidden with CSS, inside that Ajax Container, but use jQuery to copy and paste them to where they will show after our sf:ajaxfinish event has triggered.
You will also need to be using a PHP template for the page. It will be much harder (or not possible at all) if you are using a page builder or post grid plugin/widget.
It will require some coding for which I can point you in the direction of snippets, but I cannot help you write the code, sorry, as this is not within the scope of our support.
To fetch the search terms, the https://searchandfilter.com/documentation/accessing-search-data/ guide is basic but you can extend the idea to grab lots of other data. If you have other filters, then it becomes a little more complex, but I can give you links. This thread might help you:
Print out the entire search filter to the page array to see if they are in it (if they are, you can work out where in the array they are). This post should help:
Hi, I’m having some trouble getting the ajax event hooks to work.
I added the code from the FAQ page for sf:ajaxfinish, but I’m not seeing anything in the console log.
See code below. Does anything stand out as to why this would not be working?
Thanks.
<?php
/**
* The template for displaying search results pages.
*
* @package understrap
*/
// Exit if accessed directly.
defined('ABSPATH') || exit;
get_header();
$container = get_theme_mod('understrap_container_type');?>
<div class="wrapper contentPadding" id="search-wrapper">
<link rel="stylesheet" href="<?php echo get_site_url();?>/wp-content/themes/InyoBlogTheme/dist/bricklayer.min.css">
<script src="<?php echo get_site_url();?>/wp-content/themes/InyoBlogTheme/dist/bricklayer.min.js"></script>
<div class="<?php echo esc_attr($container); ?>" id="content" tabindex="-1">
<div class="row">
<!--Display sub navigation partial view -->
<?php get_template_part('partials/navtabs'); ?>
</div>
<div id="test">This is a test</div>
<!--Display Search & Filter Widget -->
<?php if (is_active_sidebar('search-bar')) : ?>
<div id="search-bar" role="complementary">
<?php dynamic_sidebar('search-bar'); ?>
</div>
<?php endif; ?>
<header id="search-title">
<?php
global $searchandfilter;
$sf_current_query = $searchandfilter->get(102003)->current_query();
$args = array(
"str" => '%2$s'
);
if (!$sf_current_query->get_search_term()=="") {
echo '<h3>Search Results for:<span> "' . $sf_current_query->get_search_term() . '"</span></h3>';
}
?>
</header><!-- .page-header -->
<div class="row">
<!-- Do the left sidebar check and opens the primary div -->
<?php get_template_part('global-templates/left-sidebar-check'); ?>
<main class="site-main" id="main">
<?php if (have_posts()) : ?>
<div class="bricklayer" id="my-bricklayer">
<?php /* Start the Loop */ ?>
<?php while (have_posts()) : the_post(); ?>
<?php
//Display search results based on content type.
//To change how different content types are displayed in search, edit the content-search loop template.
get_template_part('loop-templates/content', 'search');
?>
<?php endwhile;
wp_reset_postdata();
?>
</div><!--Bricklayer-->
<?php endif; ?>
</main><!-- #main -->
<!-- The pagination component -->
<div class="pt-3">
<?php
understrap_pagination();
?>
</div>
<!-- Do the right sidebar check -->
<?php get_template_part('global-templates/right-sidebar-check'); ?>
</div><!-- .row -->
</div><!-- #content -->
</div><!-- #search-wrapper -->
<script>
var bricklayer = new Bricklayer(document.getElementById('my-bricklayer'));
$(document).on("sf:ajaxfinish", ".searchandfilter", function(){
console.log("ajax complete");
//do or stop your animation
});
</script>
<!--Display bottom advertisment-->
<?php get_template_part( 'partials/poolparts-ad'); ?>
<?php get_footer(); ?>
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
We also use cookies to store items in your cart as well as allowing your to login on the site.
You can adjust all of your cookie settings by navigating the tabs on the left hand side.
By continuing to use this site, you also agree to our Privacy Policy.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
*Other cookies used for logging in and cart functions will only be used when you use those features and cannot be disabled.
If you disable these cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.
3rd Party Cookies
This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.
Keeping this cookie enabled helps us to improve our website.
Please enable Strictly Necessary Cookies first so that we can save your preferences!