I need to display the "sticky" post in a section that is outside the "loop".

Can someone tell me how to do this?

2 Answers 2


I am using this query;

$sticky = get_option( 'sticky_posts' ); // Get all sticky posts
rsort( $sticky ); // Sort the stickies, latest first
$sticky = array_slice( $sticky, 0, 1 ); // Number of stickies to show
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); // The query

if (have_posts() ) { while ( have_posts() ) : the_post(); ?>
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>

<?php endwhile;?>
<?php } else { echo ""; }?>

Hope it works for you too.. :)

  • 2
    Fine as for stickies, but query_posts() should not be used for secondary loops. get_posts() or new WP_Query should be used.
    – Rarst
    Jan 21, 2011 at 6:00
 $last_sticky_post = get_post(end(get_option('sticky_posts')));
   the_title(); // standard loop here...

(this gets a single post)

use get_posts() with the 'include' => implode(',', get_option('sticky_posts')) argument to get all sticky posts (Martin's solution without array_slice will do the same).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.