Support Forums

Support Forums Forums Search Search Results for 'found_posts'

Viewing 10 results - 21 through 30 (of 186 total)
  • Author
    Search Results

  • Trevor
    Moderator
    This reply has been marked as private.
    #200124

    Trevor
    Moderator

    Hi

    This is an alternative exemplar results.php file content that might do as you want:

    <?php
    /**
     * Search & Filter Pro 
     *
     * Sample Results Template
     * 
     * @package   Search_Filter
     * @author    Ross Morsali
     * @link      http://www.designsandcode.com/
     * @copyright 2015 Designs & Code
     * 
     * Note: these templates are not full page templates, rather 
     * just an encaspulation of the your results loop which should
     * be inserted in to other pages by using a shortcode - think 
     * of it as a template part
     * 
     * This template is an absolute base example showing you what
     * you can do, for more customisation see the WordPress docs 
     * and using template tags - 
     * 
     * http://codex.wordpress.org/Template_Tags
     *
     */
    
    if ( $query->have_posts() ) {
     ?>
     
     Found <?php echo $query->found_posts; ?> Results<br />
     <div class='search-filter-results-list'>
     <?php
      while ($query->have_posts())
      {
       $query->the_post();
       
       ?>
       <div class='search-filter-result-item'>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        
        <p><br /><?php the_excerpt(); ?></p>
        <?php 
         if ( has_post_thumbnail() ) {
          echo '<p>';
          the_post_thumbnail("small");
          echo '</p>';
         }
        ?>
        <p><?php the_category(); ?></p>
        <p><?php the_tags(); ?></p>
        <p><small><?php the_date(); ?></small></p>
        
        <hr />
       </div>
       
       <?php
      }
     ?>
     </div>
    <?php
    } else {
     
     //figure out which type of "no results" message to show
     $message = "noresults"; 
     if(isset($query->query['paged'])) {  
      if($query->query['paged']>1){
       $message = "endofresults";
      }
     }
     
        if($message=="noresults") {
        ?>
     <div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'>
      <span>No Results Found</span>
     </div>
     <?php
        } else {
     ?>
     <div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'>
      <span>End of Results</span>
     </div>
     <?php
     }
    }
    ?>
    #199551

    Daniel
    Participant
    This reply has been marked as private.
    #199549

    Daniel
    Participant
    This reply has been marked as private.
    #198728

    Melissa Chananie
    Participant

    Thank you so much for your quick reply! I implemented this and I’m still seeing the same behavior. To be clear, infinite scroll is loading more results but it is triggering too early. I forgot to mention the main issue with the early trigger, which is that each result has a modal attached to it. While the new results are loading, the info modal is unclickable. Since new results load even when scrolling to the top of the page, the entire page is frozen any time you scroll.

    Is there a standard offset value to the trigger that you’ve found to be most accurate to firing the trigger at the end of the page?

    Regarding pagination: I accidentally left that in the file, but yes saw your implementation. Even when using that exact implementation, I get ‘cannot read property split of undefined’. The code is trying to get query params from the url but they do not exist. It does however show page 1 of 90 or so in the container. Is there anything I need to do to enable query params to show up in the url. I see that the XML request is asking for “paged=2” but it is erroring out before making the request.

    I’ve attached the updated file where I was missing a few lines to make sure that’s exactly how it should be. Thanks for you help!

    
    <?php
    /**
     * Search & Filter Pro 
     *
     * Template for Filter Resources - Garden
     *
     */
    
    if ( $query->have_posts() )
    {
        ?>
        <p>Found <?php echo $query->found_posts; ?> Results</p><br />
        
        <div class='search-filter-results-list'>
        <?php
            while ($query->have_posts())
            {
                $query->the_post();
    
                ?>
                <div class="search-filter-result-item grid-50 tablet-grid-50 mobile-grid-100">
                <?php
                
                get_template_part( 'template-parts/content', 'resource_overview' );
            
                ?></div><?php
            }
        ?>
        </div>
    <?php
    }
    else
    {
        ?>
        <div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'>
        	<span>no more results</span>
        </div>
        <?php
    }
    ?>
    
    #198667

    Trevor
    Moderator

    Is the form set to use the Shortcode Display Results method? If it is, then the results.php template file would need a different structure if you want to use pagination and not infinite scroll. You can see examples in our plugin templates sub-folder. The results.php contained there (these files should not be edited) has the pagination type code, and there is an infinite scroll version, with contents as you would expect.

    We do not offer a Load More button, yet (probably coming in V3).

    The second of the files you have shown is missing the complete structure that it should have, here is what the default infinite scroll template looks like (without the comments section at the top):

    <?php
    if ( $query->have_posts() )
    {
    	?>
    	
    	Found <?php echo $query->found_posts; ?> Results<br />
    	<div class='search-filter-results-list'>
    	<?php
    		while ($query->have_posts())
    		{
    			$query->the_post();
    			
    			?>
    			<div class='search-filter-result-item'>
    				<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    				
    				<p><br /><?php the_excerpt(); ?></p>
    				<?php 
    					if ( has_post_thumbnail() ) {
    						echo '<p>';
    						the_post_thumbnail("small");
    						echo '</p>';
    					}
    				?>
    				<p><?php the_category(); ?></p>
    				<p><?php the_tags(); ?></p>
    				<p><small><?php the_date(); ?></small></p>
    				
    				<hr />
    			</div>
    			
    			<?php
    		}
    	?>
    	</div>
    <?php
    }
    else
    {
    	?>
    	<div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'>
    		<span>End of Results</span>
    	</div>
    	<?php
    }
    ?>

    Your code is missing this line:

    <div class='search-filter-results-list'>

    and the closing </div>

    #198619

    Melissa Chananie
    Participant

    I inherited this site from another developer and do not usually work in wordpress or php.

    2 scenarios:

    #1: Infinite scroll container is specified: results will quickly load (as many as I specify per page,) it will hit the infinite scroll trigger at the bottom, trigger loading icon, and then nothing more comes back.

    #2: No infinite scroll container is specified: Infinite scroll will load all results at the normal rate per page ie) 7 results per page, but the trigger happens at almost every scroll, even when I’m scrolling toward the top of the page. I think it may be a problem with how the containers are specified and maybe a naming conflict. I’ve tried many different values for offset but it doesn’t seem to make a difference. I saw others requesting a ‘load more results’ button and wondered if that was possible yet?

    I’m also open to trying it with pagination, but when I try to implement, it seems like its trying to do some string parsing with the url which initially does not have a query string so I get cannot read property split() of undefined . thanks so much for your insight!

    Here are the two files this is happening in:

    
    <?php
    /**
     * The template used for displaying page content for the Big Green Database
     *
     * @package red_underscores
     */
    
    // Determine which resource page this is
    
    $page_id = get_the_ID();
    $page_name = '';
    
    if ( $page_id == 12614) {
        $page_name = 'garden'; // Your Edible School Garden (cat = garden-skills-resources)
        $lessons_id = 12612;
        $sf_form_id = 14035;
    }
    if ( $page_id == 12612 ) {
        $page_name = 'lessons'; // Garden Lessons + Curriculum (cat = curriculum-lessons-activities)
        $garden_id = 12614;
        $sf_form_id = 14036;
    }
    
    ?>
    
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    
        <?php 
    
        $featured = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
        $overlay_background = "linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0))";
    
        ?>
    
        <div class="featured main" style="background: <?php echo $overlay_background ?>, url('<?php echo $featured[0] ?>'); min-height: 720px;">
            <div class="grid-container featured-content">
                <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
            </div>
        </div><!-- featured -->
    
        <div class="grid-container">
            <div class="entry-content grid-60 prefix-20 tablet-grid-90 tablet-prefix-5">
                <?php the_content(); ?>
            </div><!-- .entry-content -->
        </div>
    
                
        <?php // Toggle between pages ?>
    
        <div class="grid-container">
    
        <?php
    
        ?>
        </div>
        
        <?php 
        // Display at most three highlighted resources from this main category
        $main_resource_category = '';
        switch ($page_name) {
            case 'lessons':
                $main_resource_category = 'curriculum-lessons-activities';
                break;
            case 'garden':
                $main_resource_category = 'garden-skills-resources';
                break;
        }
    
        $args = array(
            'post_type' => 'resource',
            'posts_per_page' => 3,
            'tax_query' => array(
                array(
                    'taxonomy' => 'resource-category',
                    'field' => 'slug',
                    'terms' => $main_resource_category
                )
            ),
           
        );
    
            // Display remaining results (not highlighted) via search & filter
    
        ?>
    
        <div class="sf-results-container">
          
            <div class="grid-container">
                <?php echo do_shortcode( '[searchandfilter id="'.$sf_form_id.'"]' ); ?>
            </div>
    
            <div class="dotted-border"></div>
    
            <div class="grid-container grid-of-posts resources">
    
                <div class="grid-33 push-66 sf-pop-sidebar">
                    <h3>Popular Collections:</h3>
                    <div class="dotted-border"></div>
                    <div id="popular-collections-remote-control"></div>
                </div>
    
                <div class="grid-66 pull-33 two-col-results search-filter-results-list">
                    <?php echo do_shortcode( '[searchandfilter id="'.$sf_form_id.'" show="results"]' ); ?>
                </div>
                <div class="pagination">
            Found <?php echo $query->found_posts; ?> Results<br />
            Page <?php echo $query->query['paged']; ?> of <?php echo $query->max_num_pages; ?><br />
            <?php wp_pagenavi(); ?>
            <?php
                /* example code for using the wp_pagenavi plugin */
                if (function_exists('wp_pagenavi'))
                {
                    echo "<br />";
                    wp_pagenavi( array( 'query' => $query ) );
                } 
            ?>
        </div>
              </div>
    
            </div>
    
        </div>
    
        <script>
    
        (function($) {
            // Load again after ajax to work after filtering results
            $(document).on("sf:ajaxfinish", ".searchandfilter", function(){
                // Place search and filter boxes within grid
                $("li.sf-field-post-meta-resource_subjects, li.sf-field-taxonomy-grade-level, li.sf-field-search, li.sf-field-taxonomy-resource-category, li.sf-field-post-meta-content_source, li.sf-field-post-meta-grade_level_range, li.sf-field-submit").addClass('grid-33 tablet-grid-50 mobile-grid-100');
            });
            $(document).ready(function() {
    
                // Get list of labels and inputs in .sf-field-post-meta-popular_collection_tag
                
                var labels = $('.sf-field-post-meta-popular_collection').find('label');
                var inputs = $('.sf-field-post-meta-popular_collection').find('input');
                
                // Append them to the #popular-collections-remote-control div
                for ( var i = 0; i < labels.length; i++ ) {
    
                    var selectedClass = '';
    
                    // Apply selected class to anything that's selected on load
                    if(inputs[i].checked) {
                        selectedClass = 'selected';
                    }
    
                    $('#popular-collections-remote-control')
                        .append( '<div class="target '+ selectedClass +'" id="' + inputs[i].value + '">' + labels[ i ].innerHTML + '</div><div class="dotted-border"></div>');
                }
    
                // Set up remote control clicks
                $('#popular-collections-remote-control .target').click(function() {
                    var targetValue = $(this).attr('id');
                    $(this).toggleClass('selected');
                    $(':checkbox[value=' + targetValue + ']').trigger('click');
                });
    
                // Place search and filter boxes within grid
                $("li.sf-field-post-meta-resource_subjects, li.sf-field-taxonomy-grade-level, li.sf-field-search, li.sf-field-taxonomy-resource-category, li.sf-field-post-meta-content_source, li.sf-field-post-meta-grade_level_range, li.sf-field-submit").addClass('grid-33 tablet-grid-50 mobile-grid-100');
            });
        })(jQuery);
    
        </script>
    
    	<footer class="entry-footer">
    		<?php //edit_post_link( esc_html__( 'Edit', 'red_underscores' ), '<span class="edit-link">', '</span>' ); ?>
    	</footer><!-- .entry-footer -->
    </article><!-- #post-## -->
    
    
    
    <?php
    /**
     * Search & Filter Pro 
     *
     * Template for Filter Resources - Garden
     *
     */
    
    if ( $query->have_posts() )
    {
        ?>
        <?php
            while ($query->have_posts())
            {
                $query->the_post();
    
                ?>
                <div class="search-filter-result-item grid-50 tablet-grid-50 mobile-grid-100">
                <?php
                
                get_template_part( 'template-parts/content', 'resource_overview' );
            
                ?></div><?php
            }
        ?>
    <?php
    }
    else
    {
        ?>
        <div class='search-filter-results-list end-of-results' data-search-filter-action='infinite-scroll-end'>
        <p>no more results</p>
        </div>
        <?php
    }
    ?>
    
    #197557

    Trevor
    Moderator

    You would need to know the name of the array that wp_query places the results in to. A typical example is this:

    Found <?php echo $query->found_posts; ?> Results

    Where $query is that array. Note that if you are using Ajax, that code would need to be inside the Ajax Container.

    #194896

    Trevor
    Moderator

    I made a couple of minor changes, but to no avail. I think it is the structure of the PHP in your template. See here what our exemplar structure looks like:

    if ( $query->have_posts() )
    {
    	?>
    	
    	Found <?php echo $query->found_posts; ?> Results<br />
    	<div class='search-filter-results-list'>
    	<?php
    		while ($query->have_posts())
    		{
    			$query->the_post();
    			
    			?>
    			<div class='search-filter-result-item'>
    				<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    				
    				<p><br /><?php the_excerpt(); ?></p>
    				<?php 
    					if ( has_post_thumbnail() ) {
    						echo '<p>';
    						the_post_thumbnail("small");
    						echo '</p>';
    					}
    				?>
    				<p><?php the_category(); ?></p>
    				<p><?php the_tags(); ?></p>
    				<p><small><?php the_date(); ?></small></p>
    				
    				<hr />
    			</div>
    			
    			<?php
    		}
    	?>
    	</div>
    <?php
    }
    else
    {
    	?>
    	<div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'>
    		<span>End of Results</span>
    	</div>
    	<?php
    }
    ?>
    #194322

    Vesa Tolonen
    Participant
    This reply has been marked as private.
Viewing 10 results - 21 through 30 (of 186 total)