Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

query_posts with pagination not working

Tags:

php

wordpress

I am trying to make pagination work with the following code but no luck:

$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'cat' => '5',
    'post_type' => 'post',
    'posts_per_page' => 6,
    'paged' => $page,
);

query_posts($args);

while(have_posts()) {
    the_post(); ?>
    <div class="project_item">
        <div class="dotted">
            <hr />
        </div>
        <div class="project_thumb"><a href="<?php echo get_permalink(); ?>"><img src="<?php getCustomField('news_thumbnail'); ?>" /></a></div>
        <div class="project_entry"><h4><a href="<?php echo get_permalink(); ?>"><?php getCustomField('news_title'); ?></a></h4>
            <?php getCustomField('news_excerpt'); ?>
            <a href="<?php echo get_permalink(); ?>" class="readmore">Read more..</a>
        </div>
    </div>
<?php }

wp_reset_query();  // Restore global post data
like image 840
redconservatory Avatar asked Jan 10 '11 16:01

redconservatory


2 Answers

I just needed to add previous and next links after the loop:

<div class="navigation">
  <div class="alignleft"><?php previous_posts_link('&laquo; Previous') ?></div>
  <div class="alignright"><?php next_posts_link('More &raquo;') ?></div>
</div>

Full code:

<?php
     $args = array(
                   'cat' => '5',
                   'post_type' => 'post',
                   'posts_per_page' => 6,
                   'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1),
                   );

    query_posts($args);

while (have_posts()) : the_post();
 /* Do whatever you want to do for every page... */
?>
    <div class="project_item">
        <div class="dotted">
          <hr />
        </div>
        <div class="project_thumb"><a href="<?php echo get_permalink(); ?>"><img src="<?php getCustomField('news_thumbnail'); ?>"  /></a></div>
        <div class="project_entry"><h4><a href="<?php echo get_permalink(); ?>"><?php getCustomField('news_title'); ?></a></h4>
          <?php getCustomField('news_excerpt'); ?>
          <a href="<?php echo get_permalink(); ?>" class="readmore">Read more..</a> </div>
      </div>

      <?php

endwhile;
?><div class="navigation">
  <div class="alignleft"><?php previous_posts_link('&laquo; Previous') ?></div>
  <div class="alignright"><?php next_posts_link('More &raquo;') ?></div>
</div>
<?php
wp_reset_query();  // Restore global post data
?>
like image 166
redconservatory Avatar answered Oct 22 '22 16:10

redconservatory


Here is the fix to have it working with all pagination plugins:

global $wp_query;
query_posts(
    array_merge(
        array(
        'category__not_in' => 69, //ifu  want to exclude some category
        'posts_per_page' => 9
         ),
        $wp_query->query
    )
);
like image 40
Goran Jakovljevic Avatar answered Oct 22 '22 17:10

Goran Jakovljevic