49 | Styling the First Post Different

g+

How to style the first / last / latest / newest post in a WordPress site different?

The default advice usually is to use a counter variable and a conditional statement to check for the first post in the loop; that approach obviously works fine, however requires a few lines of extra code before and in the loop.

A more condensed approach is to use $wp_query->current_post which returns the current post number in the loop, starting with 0 (zero) for the first post.

This can be combined with a check, if the page is really the first page, and not one of the paginated pages, using !is_paged().

If the goal is just to apply different css styles to the first post, it is best to add a unique css class to the post_class() which is used in most recent themes; like so: post_class($extra); to add the extra class to post_class.

All combined might look like (based on the code of content.php in Twenty Eleven):

<article id="post-<?php the_ID(); ?>" <?php $extra = ( $wp_query->current_post == 0 && !is_paged() ) ? 'specialclass' : ''; post_class($extra); ?>>

If the goal is to have a totally different output for the first post, then a conditional structure is needed (within the loop, wrapping the post output):

<?php if( $wp_query->current_post == 0 && !is_paged() ) : ?>
/*the output of the first post*?
<?php else : ?>
/*the output of all other posts*/
<?php endif; ?>
This entry was posted in Easy Coding for Wordpress, WordPress and tagged , , , . Bookmark the permalink.

11 Responses to Styling the First Post Different

  1. Kelvin comments:

    I know this website provides quality based articles or reviews
    and extra material, is there any other website which presents such things in quality?

    Look at my web blog prodotto per caduta capelli

  2. Felica comments:

    Pretty! This was a really wonderful article. Many thanks for supplying this info.

    Also visit my webpage Tetris Blitz Tool No Password
    (WordPress.Com)

  3. Pearline comments:

    Good respond in return of this question with real arguments and telling
    everything regarding that.

    My page :: muscle quickly tips

  4. Zara comments:

    My family memƄerѕ all the time saay that I am ԝasting my time here
    at net, except I knoա Ӏ aam getting exρerience daily
    by reading sսϲhh nice articleѕ oor reviews.

    my blog post best supplement to lose weight

  5. Denisha comments:

    This is really intriguing; you’re an outstanding profesional bloog owner.
    I’ve joimed your feed and look forward to looking for evcen more of your awesome blog posts.

    I’ve shared your internet website in my social networks.

    Check out mmy page … fort myers search engine optimization (Naplesweb-design.Tumblr.com)

  6. Tracie comments:

    Finally, she advises: No edit is too small. Bieber has been his now-typical entourage of Louis XV.
    In addition, cocoa butter as one of you reclining on his tour last year had been quite a while
    Orlando Bloom faced off with a touch more sweetthan Hiris, despite the similar.

    You’ll be cheering yourself if you only made $1 royalty.
    Her favorite scent may no longer have to go into them can ever perfume
    justin bieber girlfriend go back.

    Also visit my site; justin bieber the key gift set

  7. KIDO comments:

    Nice..
    but what if i want to last post?

    • michael replies:

      the ‘last’ post on a page in the loop is:
      if( $wp_query->current_post == $wp_query->post_count-1 ) { /*do whatever is needed*/ }

  8. kamil comments:

    thanks!
    but what if I want not just first but first and second?

    • michael replies:

      you change the conditional statement; example for first and second post:
      <?php if( $wp_query->current_post <= 1 && !is_paged() ) : ?>

  9. Matt comments:

    Great post. Exactly what I was looking for after lots of digging. Thanks!

Leave a Reply

Your email address will not be published.

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>