0
votes

I have been working on this for a while basically i am trying to fetch the top three stick posts from a specific category in WordPress and display them only. I have some code below however this is fetching all the posts not just the specific ones marked as sticky in that category.

<?php $sticky=get_option('sticky_posts');
$query_args=array(
'post__in' => $sticky,
'category__in'=>array($category)
 );
$the_query = new WP_Query($query_args); ?>
<?php $count = 0; ?>  
<?php while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate =      $post->ID; ?>
<?php $count++; ?>  

<?php if ($count == 1) : ?>  
    <div class="featurethumb"><?php the_post_thumbnail(array(306,306), array ('class' => 'featurethumb')); ?>
<div class="featuretitle-bg"><div class="featuretitle"><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></div>
<div class="featured-desc"><?php the_excerpt(__('(more…)')); ?></div></div>
</div>
<?php elseif ($count == 2) : ?>  
    <div class="index-thumb"><?php the_post_thumbnail(array(100,100), array     ('class' => 'alignleft1')); ?></div>
<div class="indexblog-title"><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></div>
<?php the_excerpt(__('(more…)')); ?>
<?php else : ?>  
    <div class="index-thumb"><?php the_post_thumbnail(array(100,100), array   ('class' => 'alignleft2')); ?></div>
 <div class="indexblog-title"><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></div>
<?php the_excerpt(__('(more…)')); ?>
<?php endif; ?>

 <?php endwhile; ?>
1
where is $categorydefined? You are mixing up $the_query and my_query. - RST

1 Answers

1
votes

I'm assuming that you defined your $category somewhere as RST mentioned?

<?php

/* Get all sticky posts */
$sticky = get_option( 'sticky_posts' );

/* Sort the stickies with the newest ones at the top */
rsort( $sticky );

/* Get the 5 newest stickies (change 5 for a different number) */
$sticky = array_slice( $sticky, 0, 5 );

/* Query sticky posts */
$query_args = array( 
                       'post__in' => $sticky, 
                       'category__in'=>array($category)
                    );
?>

$my_query = new WP_Query($query_args); ?>
 <?php while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate =      $post->ID; ?>