1

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

Can someone tell me how to do this?

2

I am using this query;

<?php
$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.. :)

|improve this answer|||||
  • 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 '11 at 6:00
1
 $last_sticky_post = get_post(end(get_option('sticky_posts')));
 if(!empty($last_sticky_post)):
   setup_postdata($last_sticky_post);
   the_title(); // standard loop here...
   the_content();
 endif;

(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).

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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