Forums

[resolved] Count the number of posts displayed on a page (9 posts)

  1. xencinas
    Member
    Posted 2 years ago #

    Hello,

    I am trying desperately to find the way to count the number of post displayed on a page. If I count the published it works of course but I don't need that.

    I want to count the number of post displayed on the page let's say 3 (and in the WP settings I only show 3 posts per page), in order to hide a title like "timeline" before next_post_link(). So if on a result page I only have 1 result the title "timeline" won't show.

    hope I am clear enough... Thanks for your help!

    Xavier

  2. doodlebee
    Member
    Posted 2 years ago #

    So... you just want to count them? Like display the number?

    <?php
    $count = 1;
    if (have_posts()) : while(have_posts()): the_post(); ?>
    <?php echo $count; ?>
    layout of template file here
    <?php $count++;
          endwhile; endif; ?>

    that should echo the count for each post on the page, starting with "1".

  3. xencinas
    Member
    Posted 2 years ago #

    Actually I want to count the number of post on the page so if this number is bigger than 3 (for example), I won't show a text (a title for instance).

    To be more specific. I set up on the admin that I want to display 3 post on a page (index for example). Then I have a navigation like next_post_link() and a title that go with like "navigate". If there is 3 or less post on the page I want to be able to hide this text so it won't look: the title and then nothing to clic after.

    Hope i am clear. Thanks for your help and this beginning of answer :-)

  4. doodlebee
    Member
    Posted 2 years ago #

    Ah - so you want to do something *with* that count then :) Well, that's pretty simple. It still uses the above code - but instead of echoing out the $count, then do what it is you need to do using $count as a flag.

    <?php
    $count = 1;
    if (have_posts()) : while(have_posts()): the_post(); ?>
    layout of regular template file here
    <?php $count++;
          endwhile; endif; ?>
    <?php if ($count > '3') { ?>
    show the link and title here (because it's more than 3)
    <?php } ?>

    That *might* work. Untested - you might have to play with it a little.

  5. outshine
    Member
    Posted 2 years ago #

    @doodlebee,
    You has shown a solution. But actually we want to know is there a way to print the number of post per page in a particular category so that we can use this information to perform complex calculation.
    If this information is available many loops can be manipulated and created easily.

  6. MichaelH
    Volunteer
    Posted 2 years ago #

    What about:

    <?php
    echo 'Count of posts array ' . count($posts);
    ?>
  7. Mark / t31os
    Moderator
    Posted 2 years ago #

    This may also help..

    <?php
    if($wp_query->found_posts <= get_option('posts_per_page') && (!get_query_var('paged') || get_query_var('paged') < 2)) {
     // If the total amount of posts in the query is "less than" or "equal to" the amount to show per page and it's the first page
    }
    else {
     // Else there's more results on additional pages
    }
    ?>

    As alternative.. :)

  8. outshine
    Member
    Posted 2 years ago #

    @MichaelH
    Worked like charm buddy.
    Thanks a lot

  9. okasu
    Member
    Posted 2 years ago #

    <?php
    $count = 1;
    if (have_posts()) : while(have_posts()): the_post(); ?>
    layout of regular template file here
    <?php $count++;
          endwhile; endif; ?>
    
    <?php if((preg_match('/\/2\//',$_SERVER['REQUEST_URI']))) {
     $count = 51;
    } elseif((preg_match('/\/3\//',$_SERVER['REQUEST_URI']))) {
     $count = 101;
    } else {
     $count = 1;
    } ?>

    Can anyone tell me how to tell this to keep track of the count once it hits page 2,3,etc..? Looking around, I was able to find this but it doesn't work..

Topic Closed

This topic has been closed to new replies.

About this Topic