I have created custom Wordpress loop using WP_Query, loop is working fine and I can customize it nicely, however i have a problem using "Blog pages show at most" settings, for example inside my loop if i have added following argument `'post_per_page' =>-1` my loop is showing all posts but now i <b>can't insert my custom number of posts</b> inside admin panel if I enter <b>"Blog pages show at most" 3</b> (three representing number of posts) they are ignored and loop is showing all posts. <br/><br/>So to overcome this problem <i>(because i want to control number of posts showing inside admin reading settings)</i><br/>I have done following : Created a blank value variable and passed it as an argument like this: $show_my_posts = ''; $args = array( 'paged' => $paged, 'post_not_in' => $show_my_posts //added blank value variable in order to respect "Blog pages show at most" in backend ); $temp = $wp_query; $wp_query = null; $wp_query = new WP_Query($args); So now <b>I can insert custom number of posts</b> inside admin backend and my loop is behaving as i want (I enter "Blog pages show at most" and value as 3 ) and now my loop is displaying three posts as I want. <br/><br/>My question is: <b>Am I doing this the "right way" or is there a better way for achieving that behavior?</b> THX!! My full loop looks like this: <?php //enable pagination on static pages and blog pages $show_my_posts = ''; $col = 1; //Let's create first column /*Let's add pagination to post page and static page*/ if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } elseif ( get_query_var('page') ) { $paged = get_query_var('page'); } else { $paged = 1; } $args = array( /* Add whatever you need here - see http://codex.wordpress.org/Class_Reference/WP_Query */ 'paged' => $paged, 'post_not_in' => $show_my_posts //added blank value variable in order to respect //"Blog pages show at most" in backend ); $temp = $wp_query; $wp_query = null; $wp_query = new WP_Query($args); if($wp_query->have_posts()):?><?php while ( $wp_query->have_posts() ) : $wp_query->the_post();?> <?php if ($col == 1) echo '<div class="row">';//If column 1 create first row ?> <?php if ($col == 2) echo '<div class="row2">';//If column 2 create second row ?> <div <?php post_class('col'.$col); ?> id="post-<?php the_ID(); ?>"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <div class="entry"> <div class="featured_img"> <?php the_post_thumbnail(); echo '<div class="featured_caption">' . get_post(get_post_thumbnail_id())->post_excerpt . '</div>';?> </div><!--/featured_img--> <?php // let's enable more link on pages... global $more; $more = 0; ?> <?php the_content(); ?> <div class="clear"></div> <div class="custom_fields"><?php the_meta(); ?></div><br/> <p class="postmetadata"> <?php _e('Filed under:','domain'); ?> <?php the_category(', ') ?> <?php _e('by','domain'); ?> <?php the_author(); ?><br/><?php the_tags('Tags:', ', ', '<br />'); ?> <?php _e('Posted on: ','domain'); ?><?php the_time('l, F jS, Y'); ?><br/> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?> <?php edit_post_link('Edit', ' | ', ''); ?> </p> </div> </div> <?php /*Enable Two Column Layout*/ if($col==1) { $col=2; echo "</div>"; } else if($col==2) { $col=1; echo "</div>"; } endwhile; ?> <div class="clear"></div> <div class="navigation"> <?php global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, $paged ), 'total' => $wp_query->max_num_pages ) ); ?> </div> <?php endif; ?> <?php $wp_query = null; $wp_query = $temp; wp_reset_query(); ?>