Support » Plugin: Recent Posts FlexSlider » Post counter

  • Resolved naved90

    (@naved90)


    Hello,

    Great plugin I really love it.

    My question is : is it possible to show post counter at the top of the plugin. The format of the post counter I am looking forward to is:

    Current post number / Total Number of posts in slider

    example : 1/20

    Please let me know how I can achieve it. It would be really great of you.
    Thanks in advance.

    https://wordpress.org/plugins/recent-posts-flexslider/

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author David Wolfpaw

    (@davidjlaietta)

    This should be doable in the views/display.php file

    I would do the following:
    – Add a counter variable to that file after this line:

    if ( $flex_query->have_posts() ) : while( $flex_query->have_posts() ): $flex_query->the_post();

    That counter could look like this:

    $count = 1;

    – Somewhere in the output, display your count, a slash, then the number of slides:

    $output .= '<span class="post-count">' . $count . '/' . $slider_count '</span>';

    – Increment the counter before the endwhile; statement:

    $count++;

    Now you’ve got the number of the post in a span with a class that you can style as needed.

    First of all thanks you very much for helping me out. I am very much grateful to you.

    After following your instructions I am getting this message on the fronted end. May be I am doing something silly.

    ` Parse error: syntax error, unexpected ”</span>” (T_CONSTANT_ENCAPSED_STRING) in C:\xampp\htdocs\newztrack\wp-content\plugins\recent-posts-flexslider\views\display.php on line 27

    Plugin Author David Wolfpaw

    (@davidjlaietta)

    I had a mistake in the bit that I wrote and forgot a period. The periods are concatenators, meaning they’re adding the spans and the numbers together.

    This:

    $output .= '<span class="post-count">' . $count . '/' . $slider_count '</span>';

    Should be this:

    $output .= '<span class="post-count">' . $count . '/' . $slider_count . '</span>';

    Hello, Thanks for the time you are devoting toward my problem. I really appreciate it.

    I am sorry but I think I am doing some thing wrong as I can’t see the post counter at the front end.

    Below I am attaching my file if you can please let me know what I am doing wrong.

    <?php
    // Frontend View of Slider
    
    // Enqueue Stylesheet and Script only where loaded
    wp_enqueue_style( 'recent-posts-flexslider-widget-styles' );
    wp_enqueue_script( 'recent-posts-flexslider-script' );
    
    // Query DB for slides
    $flex_args = array(
        'cat' => $categories,
        'post_status' => 'publish',
        'post_type' => $post_type_array,
        'showposts' => $slider_count,
        'ignore_sticky_posts' => true,
    );
    
    $flex_query = new WP_Query( $flex_args );
    
    // Call class to display slider
    $display = new Recent_Posts_FlexSlider();
    
    ?>
    
    <h3 class="flexslider-title"><?php if ( !empty( $title ) ) { echo $title; }; ?><?php $output .= '<span class="post-count">' . $count . '/' . $slider_count . '</span>'; ?></h3>
    
    <div id="slider-wrap">
        <div class="flexslider" <?php /* Remove margin if only one slide */ if($slider_count == 1) { echo 'style="margin: 0;"'; } ?>>
            <ul class="slides">
                <?php
    			if ( $flex_query->have_posts() ) : while( $flex_query->have_posts() ): $flex_query->the_post();
                              $count = 1;
                    $output = '<li style="text-align:center; max-height: ' . $slider_height . 'px;">';
    
                    	// Start link of slide to post (option set on Appearance->Widgets)
    					if($post_link == 'true'):
                    	    $output .= '<a href="' . get_permalink() . '" title="' . get_the_title() . '">';
                    	endif;
    
                            $output .= '<div style="height: ' . $slider_height . 'px">';
                                $output .= $display->get_recent_post_flexslider_image( $image_size );
                            $output .= '</div>';
    
    						// Display Post Title and/or Excerpt (option set on Appearance->Widgets)
    						if($post_title == 'true' || $post_excerpt == 'true'):
    							$output .= '<div class="flexslider-caption"><div class="flexslider-caption-inner">';
    								if($post_title == 'true'):
    									$output .= '<h3>' . get_the_title() . '</h3>';
    								endif;
    								if($post_excerpt == 'true'):
    									$output .= '<p>' . $display->recent_post_flexslider_excerpt(get_the_content(), $excerpt_length) . '</p>';
    								endif;
    							$output .= '</div></div>';
    						endif;
    
                    	// End link of slide to post (if option is selected in widget options)
    					if($post_link == 'true'):
                    	    $output .= '</a>';
                    	endif;
    
                    $output .= '</li>';
    
    				echo $output;
                                   $count++;
                endwhile; endif; wp_reset_query();
    			?>
            </ul>
        </div>
    </div>
    
    <script type="text/javascript">
    (function ($) {
    	"use strict";
    	$(function () {
          jQuery('.flexslider').flexslider({
            animation: "<?php echo $slider_animate; ?>",		// String: Set the slideshow animation (either slide or fade)
            slideshowSpeed: <?php echo $slider_pause; ?>,		// Integer: Set the speed of the slideshow cycling, in milliseconds
            animationSpeed: <?php echo $slider_duration; ?>,	// Integer: Set the speed of animations, in milliseconds
          });
    	});
    }(jQuery));
    </script>
    Plugin Author David Wolfpaw

    (@davidjlaietta)

    You’ve placed the count output in the wrong area. Where it goes exactly depends on how you want to style and position it, but it needs to go somewhere between

    $count = 1; and echo $output;. It should probably go inside of the <li></li> tags.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Post counter’ is closed to new replies.