-
Search Results
-
Hi,
I’ve searched as long as possible in the forum.
I’ve read the documentation.The ajax form search fields and reset, works well.
But I can’t get infinite scrolls to work.I’ve tryed with shortcode. I’ve put the shortcode in the WP classic editor. I’ve copied results.php in a subfolder of my theme (that is elementor hello theme) and I pasted in, the code of the results-infinite-scroll.php template.
In the settings the result url is filled etc etc.
Nothing. Scrolling nothing happens.Then I’ve tryed with custom setting. I’ve set a custom template in my theme with the code of the results-infinite-scroll.php template customized.
In the settings the result url is filled etc etc.
Ajax container = #main
Pagination Type is set to infinite scroll; show loading icon checkbox is checked, but it’s not loaded.
Post result selector = .search-results-item (but I’ve tryed without it, too)
Infinite Scroll Container: = empty (but I’ve tryed with #search-filter-results-list, too)
I’ve tryed all the other fields of the Ajax Pagination setting section, but nothing.
I’ve deactivated all plugin except ACF Pro, Custom post type UI and S&F Pro of course. Nothing
I’ve changed the theme with a default one. Nothing.The page is on a live web site that I’m developing. I can give the url but not publicly
Thanks in advance for your help
My custom template code:
<?php /* Template Name: Eventi */ get_header(); ?> <style> .content { width:1440px; margin:0 auto; padding:20px; } .search-results-wrapper { display:flex; flex-wrap: wrap; } .search-results-item { /*flex: 1 0 21%;*/ padding: 20px; display: flex; flex-direction: column; flex-basis: 25%; } .content-wrapper { flex: 1; } .post-thumb { height:300px; width:100%; background-position:center; background-size:cover; border-radius: 0 80px 40px 80px; border: 1px solid #15255E; } .post-thumb .term { display:inline-block; padding:5px 20px; background-color:#ccc; color:#FFF; min-width:200px; text-align:center; font-size: 20px; font-weight: 500; } .post-content { display:none; font-size:1rem; color:#010326; padding-top:20px; width:100%; } .post-title { color: #009cd3; font-size: 28px; margin-top:30px; } .post-event-date, .post-event-place { font-size: 16px; font-weight: 400; color: #009cd3; } .search-results-wrapper .btn-wrapper { margin-top:30px; } .search-results-wrapper .toggle_btn { width:100px; } .search-results-wrapper .btn-hover-last { width:75px; } .search-results-wrapper .btn-hover-first { margin-right:40px; } .search-results-wrapper .btn-hover-wrapper { text-align:left; position:relative; padding-right:20px; display:inline-block; } .search-results-wrapper .toggle-wrapper:after { content:"\f067"; font-size: 16px; top: 0px; right: 0px; position: absolute; -webkit-transition: all .5s ease-out; -moz-transition: all .5s ease-out; -o-transition: all .5s ease-out; transition: all .5s ease-out; display: inline-block; font-style: normal; font-variant: normal; text-rendering: auto; -webkit-font-smoothing: antialiased; font-family: 'FontAwesome'; color:#15255e; } .search-results-wrapper .toggle-wrapper.active:after { transform: rotate(-180deg); content:"\f068"; color:#009ad2; } .search-results-wrapper .btn-hover-wrapper a { display:block; position:relative; cursor:pointer; } .search-results-wrapper .btn-hover-wrapper img { transition: opacity .25s ease-in-out; -moz-transition: opacity .25s ease-in-out; -webkit-transition: opacity .25s ease-in-out; } .search-results-wrapper .btn-hover-last { padding:0; } .search-results-wrapper .btn-hover-last a { transform: translateY(-3px); } .search-results-wrapper .btn-hover-wrapper .hover-image { position:absolute; top:0px; left:0px; opacity:0; transition: opacity .25s ease-in-out; -moz-transition: opacity .25s ease-in-out; -webkit-transition: opacity .25s ease-in-out; } .search-results-wrapper .btn-hover-wrapper:hover img { opacity:0; } .search-results-wrapper .btn-hover-wrapper:hover .hover-image { opacity:1; } </style> <div class="content"> <div class="inner-content"> <main class="main" role="main" id="main"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php post_class(''); ?> role="article" itemscope itemtype="http://schema.org/WebPage"> <header class="article-header"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <h1 class="page-title"><?php the_title(); ?></h1> </header> <!-- end article header --> <section class="entry-content" itemprop="text"> <?php the_content(); ?> </section> <!-- end article section --> </article> <!-- end article --> <?php endwhile; endif; ?> <?php wp_reset_query(); ?> <div> <?php echo do_shortcode('[searchandfilter id="1675"]'); ?> </div> <?php $args = array('post_type' => 'eventi'); $args['search_filter_id'] = 1675; $query = new WP_Query($args); if ( $query->have_posts() ) { ?> Found <?php echo $query->found_posts; ?> Results<br /> <div class="search-results-wrapper" id="search-filter-results-list"> <?php while ($query->have_posts()) { $query->the_post(); $content = get_the_content(); ?> <div class="search-results-item search-filter-result-item"> <div class="content-wrapper"> <?php if ( has_post_thumbnail() ) : $featured_img_url = get_the_post_thumbnail_url(get_the_ID(),'medium-large'); ?> <div class="post-thumb" style="background-image:url(<?=$featured_img_url ?>)"> <?php $terms = get_the_terms( $post->ID, 'tipologia' ); foreach($terms as $term) : ?> <span class='term' style="background-color:<?php the_field('tax_tipologia_color', 'tipologia' . '_' . $term->term_id) ?>"> <?php echo $term->name; ?> </span> <?php endforeach; ?> </div> <?php endif; ?> <h2 class="post-title"><?php the_title(); ?></h2> <div class="post-event-date"> <span class="from-date"><?php the_field("start_date"); ?></span> <?php if ( get_field("end_date") ) : ?> <span class="to-date"> - <?php the_field("end_date"); ?></span> <?php endif; ?> </div> <div class="post-event-place"><?php the_field("luogo"); ?></div> </div> <div class="btn-wrapper"> <div class="btn-hover-wrapper toggle-wrapper btn-hover-first"> <a class="toggle_btn" data-id="post-<?php the_ID(); ?>"> <img src="https://supernovae.kreas.it/wp/wp-content/uploads/2019/12/Scopri-di-piu-2.png" alt="Scopri di piu"> <img src="https://supernovae.kreas.it/wp/wp-content/uploads/2019/12/Scopri-di-piu_over.png" class="hover-image" alt="Scopri di piu over"> </a> </div> <div class="btn-hover-wrapper btn-hover-last"> <a href="<?php the_field("event_url"); ?>" target="_blank" title="Scopri di piu"> <img src="https://supernovae.kreas.it/wp/wp-content/uploads/2019/11/vai-al-sito-e1575911625135.png" alt="Vai al sito"> <img src="https://supernovae.kreas.it/wp/wp-content/uploads/2019/11/vai-al-sito-over-e1575911641927.png" class="hover-image" alt="Vai al sito"> </a> </div> <div class="post-content toggle-content" id="post-<?php the_ID(); ?>"> <?=$content ?> </div> </div> </div> <?php } ?> </div> <?php } else { ?> <div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'> <span>Non sono stati trovati eventi</span> </div> <?php } ?> </main> <!-- end #main --> </div> <!-- end #inner-content --> </div> <!-- end #content --> <script> jQuery(document).on('click', ".toggle_btn", function(event){ var post_id = jQuery(this).attr("data-id"); jQuery(this).parent().toggleClass('active'); jQuery("#" + post_id).toggle(500); event.preventDefault(); }); </script> <?php get_footer(); ?>
Hello,
I am using ACF Custom Database Tables plugin that creates custom tables for ACF custom meta data. ACF Custom Database Tables uses ACF’s core API functions – get_field() and update_field() – to store/retrieve data from custom tables.
The fields for the Custom Post Type are created as usual with ACF, but then the plugin saves the data in a custom table, outside the normal WP post meta table.
I was wondering if I can use the SF Pro plugin for searching and filtering this custom table, maybe by altering the WP_Query?
The custom fields do not appear in the Post Meta table at all, and also not in the SF post meta search field.Regards!
Hello Trevor,
Thanks a lot for the hard work you guys put in this great S&F.
I have a question.
I try to get the filtered Categories shown above my filter results.
As in: Categories: (here the filtered terms).
I followed this advice: https://searchandfilter.com/documentation/accessing-search-data/And use now this code and get it in elementor with snippets:
//Get a multiple fields values by passing an array of field names
//replace1526
with the ID of your search form
global $searchandfilter;
$sf_current_query = $searchandfilter->get(6890)->current_query();
echo $sf_current_query->get_fields_html(
array(“_sft_category”, “”)
);What I notice are two things:
1. with AJAX on, after the filter search, I need to refresh the page to get the code active/filled with the active terms
2. If Ajax is off, it is automatically updating ( I think due to reload page).Can you help me to get this working with Ajax on?
Thanks a lot in advance!Hi,
I have these taxonomies:
– Product
– Merchant
– Merchant offerI created a custom post template to make it possible to view all merchant offers for a product, with the possibility to filter on both merchant meta fields (review, payment methods..) as on merchant offer meta fields (price, delivery time..)
Now I see that the S&F Pro plugin shows filter options for every existing post instead of the current viewed product. When you see my code below (this is my very first php-code, so when it is looking strange, that’s why), do you have a hint how to show only filter options for the current viewed product?<?php /* * Template Name: Product * Template Post Type: post, page, product, item */ get_header(); ?> <?php $link = get_post_custom_values("link") [0]; $color = get_post_custom_values("kleur") [0]; //echo get_post_custom_values("product_group")[0]; ?> <div id="content" class="site-content"> <section id="primary" class="content-area"> <main id="main" class="site-main"> <article id="post-2" class="post-2 page type-page status-publish hentry entry"> <div class = "pdp-full-top"> <div class = "pdp-top-container entry-header"> <h1 class = "pdp-title"> <?php $brand = get_post_custom_values("brand") [0]; $line = get_post_custom_values("line") [0]; $type = get_post_custom_values("type") [0]; $variant = get_post_custom_values("variant_value") [0]; echo $brand . " " . $line . " " . $type . " " . $variant; ?> </h1> <div class = "pdp-image-container"><div class = "pdp-image-helper"></div><?php the_post_thumbnail(); ?> </div> <div class = "pdp-top-info-container"> <h2 class = "pdp-sub-title"> <?php $product_group = get_terms(array( 'taxonomy' => 'productgroep', 'hide_empty' => false, )) [0]->name; echo $product_group . ", " . $variant; ?> </h2> <h5 class = "pdp-choise-criteria">Keuzecriteria</h5> <div class = "pdp-price">Prijs vanaf ... </div> </div> </div> </div> <div class = "pdp-lister-container entry-content"> <?php //Filter area ?> <div class = "pdp-filter-container"> <?php echo do_shortcode('[searchandfilter id="165176"]'); ?> <?php echo do_shortcode('[searchandfilter id="153395"]'); ?> </div> <div class = "pdp-shopping-list-container"> <?php //Get all merchants $ean = get_field("ean"); $args_merchants = array( 'post_type' => 'merchant_offer', 'tax_query' => array( array( 'taxonomy' => 'ean', 'field' => 'slug', 'terms' => $ean, 'compare' => '=' ) , ) ); $offers = new WP_Query($args_merchants); $all_merchants = []; while ($offers->have_posts()): $offers->the_post(); $get_merchant = get_post_meta(get_the_ID() , 'merchant_id') [0]; array_push($all_merchants, $get_merchant); endwhile; //Get filtered merchants wp_reset_postdata(); wp_reset_query(); $args_offers = array( 'post_type' => 'merchants', 'search_filter_id' => 153395, 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'merchant_id', 'field' => 'slug', 'terms' => $all_merchants, 'operator' => 'IN', ) , ) ); $query2 = new WP_Query($args_offers); $filtered_merchants = []; $post_id_by_merchant = []; while ($query2->have_posts()): $query2->the_post(); $get_filtered_merchant = get_post_meta(get_the_ID() , 'merchant_id') [0]; array_push($filtered_merchants, $get_filtered_merchant); $post_id_by_merchant[$get_filtered_merchant] = get_the_ID(); endwhile; //Get filtered offers by filtered merchants wp_reset_postdata(); wp_reset_query(); $args_filtered_offers = array( 'post_type' => 'merchant_offer', //add filter id somewhere here! 'search_filter_id' => 165176, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'ean', 'field' => 'slug', 'terms' => $ean, ) , array( 'taxonomy' => 'merchant_id', 'field' => 'slug', 'terms' => $filtered_merchants, ) , ) , ); $query3 = new WP_Query($args_filtered_offers); //Build shopping list ?> <div class = "pdp-shopping-list"> <div class = "row header"> <div class = "item"></div> <div class = "item">Winkel</div> <div class = "item">Reviews</div> <div class = "item">Basisprijs</div> <div class = "item">Totaalprijs</div> <div class = "item"></div> </div> <?php while ($query3->have_posts()): $query3->the_post(); setlocale(LC_MONETARY, 'nl_NL'); $current_merchant_id = $post->merchant_id; $stars = floatval(get_post_meta($post_id_by_merchant[$current_merchant_id], 'reviewsterren', true)); $review_amount = get_post_meta($post_id_by_merchant[$current_merchant_id], 'aantal_reviews', true); ?> <div class = "row"> <div class = "item logo"><?php echo get_the_post_thumbnail($post_id_by_merchant[$current_merchant_id]); ?></div> <div class = "name"><?php echo get_post_meta($post_id_by_merchant[$current_merchant_id], 'name', true) ?></div> <div class = "review-container"><div class="stars" style="--rating: <?php echo $stars ?>;" aria-label="Rating of this product is <?php echo $stars ?> out of 5."></div><div class = "reviews"><?php echo $review_amount . " reviews" ?></div></div> <div class = "item price-actual"><?php echo money_format("€%.2n", $post->price_actual); ?></div> <div class = "item price-total"><?php echo money_format("€%.2n", $post->total_price); ?></div> <div class = "item view"><button class = "button"><a href="<?php echo $post->link; ?>" target="blank">Bekijken</a></button> </div> </div> <?php endwhile; ?> </div> <?php wp_reset_postdata(); wp_reset_query(); ?> </div> </div> </main> </section> </div>
Thanks again in advance.
Best regards,
Roeland van Oostenbrugge