Разбивка разбитых категорий

По какой-то причине приведенный ниже код работает до тех пор, пока я не попаду на третью страницу и не дам 404. Можно ли исправить это, не используя никаких плагинов?

<?php $temp = $wp_query; $wp_query = null; $wp_query = new WP_Query('cat='. $id .'&posts_per_page=4&paged='.$paged); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <?php get_the_content() ?> <?php endwhile; ?> <?php if ( $wp_query->max_num_pages > 1 ) : ?> <?php previous_posts_link( __( 'Previous', 'themename' ) ); ?> <?php next_posts_link( __( 'Next', 'themename' ) ); ?> <?php endif; ?> <?php $wp_query = null; $wp_query = $temp;?> 

Solutions Collecting From Web of "Разбивка разбитых категорий"

Попробуйте создать новый экземпляр WP_Query и в конце используйте wp_reset_query (); как это:

 <?php $my_query = new WP_Query(); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $my_query->query('cat='. $id .'&posts_per_page=4&paged='.$paged); while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php get_the_content() ?> <?php endwhile; ?> <?php if ( $my_query->max_num_pages > 1 ) : ?> <?php previous_posts_link( __( 'Previous', 'themename' ) ); ?> <?php next_posts_link( __( 'Next', 'themename' ) ); ?> <?php endif; ?> <?php wp_reset_query(); ?> 

Вот какой рабочий код я использую:

  <?php $temp_query = $wp_query; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("category_name=".$cat."&showposts=20&paged=".$paged.""); while (have_posts()) : the_post(); ?> the_content(); endwhile; ?> <div class="navigation2"> <div class="navleft"><?php next_posts_link('Older Entries') ?></div> <div class="navright"><?php previous_posts_link('Newer Entries') ?></div> </div> <?php $wp_query = $temp_query; ?>