WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Showposts Loop (8 posts)

  1. chanel
    Member
    Posted 3 years ago #

    I'm trying to show the 5 recent posts in my bar with this loop:
    <?php query_posts('showposts=5'); ?>

    However, it changes my main index content from showing 3 blog posts to 5 posts.

    Is there a way to show recent posts in my sidebar without it interfering with my main content?

    Note: I do not want to use the "recent posts" widget because I am using my own alteration of the loop. Example below:

    <?php query_posts('showposts=5'); ?>
    <ul>
                    <?php while (have_posts()) : the_post(); ?>
                    <li class="latestpost">
    <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <br /><span class="latestpostmeta"><?php the_time('M jS, Y') ?> | <?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?> </span></li>
                    <?php endwhile; ?>
                    </ul>

    You can view it at http://kisschanel.com/blog, located under "Recent Posts" in the sidebar.

  2. ambrosite
    Member
    Posted 3 years ago #

    Try the get_posts function, rather than query_posts:

    http://codex.wordpress.org/Template_Tags/get_posts

  3. chanel
    Member
    Posted 3 years ago #

    Thanks for the response ambrosite. But I tried that already and it only fetched 3 posts, which is what's set in my Reading settings. I need for it to be different than what's showing on the main content.

  4. ambrosite
    Member
    Posted 3 years ago #

    In that case, you'll need to create a custom loop using WP_Query. Something like this:

    <?php
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=5');
    while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
            <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
            <p><?php the_content(); ?></p>
    <?php endwhile; ?>
  5. chanel
    Member
    Posted 3 years ago #

    That didn't work ambrosite. Here's the scenario:

    left side : Only supposed to show 3 blog posts in it's entirety.
    right sidebar : Only supposed to show 5 listings of the recently posted blog TITLES, date, and comment count. Not the content.

  6. ambrosite
    Member
    Posted 3 years ago #

    OK, well if you want the date to display instead of the content, just replace the_content with the_time, like this:

    <?php
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=5');
    while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
            <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
            <p><?php the_time(); ?></p>
    <?php endwhile; ?>

    If you paste that code into your sidebar, does it display the five posts you are looking for?

  7. ambrosite
    Member
    Posted 3 years ago #

    Actually, building on the code snippet you posted originally, I suppose what you really want is this:

    <?php
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=5'); ?>
    <ul>
    <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
    <li class="latestpost">
    <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <br /><span class="latestpostmeta"><?php the_time('M jS, Y') ?> | <?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?> </span></li>
    <?php endwhile; ?>
    </ul>
  8. chanel
    Member
    Posted 3 years ago #

    That last submission worked perfectly. Thank you ambrosite!

Topic Closed

This topic has been closed to new replies.

About this Topic