Почему этот код работает локально, но выходить из сети?

По какой-то странной причине этот код отлично работает на моей локальной установке WordPress, но когда я помещаю его в прямом эфире на веб-сервере, код просто повторяет одни и те же две статьи снова и снова и не выходит за рамки тех же двух статей. Я использую InfiniteScroll (не плагин WP, моя ручная установка). Что-то не так с моей петлей?

РЕДАКТИРОВАТЬ

Вот ссылка на код в полном объеме, взятый из single.php: http://pastebin.com/dtiSHUYP

<div id="post-wrap"> <?php // Show all posts within this category $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args= array( 'category_name' => $cat->slug, 'paged' => $paged, 'cat' => '-12', 'posts_per_page' => 2, 'post__not_in' => array( $post->ID ) ); query_posts($args); ?> <?php $current_post_date = $post->post_date; ?> <?php if( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php if ($post->post_date < $current_post_date) { ?> <article> <figure> <?php $image_link=get_post_meta($post->ID,'Image_Link',true); if($image_link != '') { echo '<a href="http://example.com">'. get_the_post_thumbnail() .'</a>'; } else { echo get_the_post_thumbnail(); } ?> <figcaption> <?php // Call in the contents of a custom field called Credit and if custom field in admin panel is empty don't display <p> tags otherwise wrap contents of custom field in <p> tags $credit=get_post_meta($post->ID,'Credit',true); if($credit != '') { echo '<p>'. $credit .'</p>'; } else { echo ' '; } ?> </figcaption> </figure> <?php $sub_title=get_post_meta($post->ID,'subtitle',true); if($sub_title != '') { echo '<h1>'. get_the_title() .'<span> / '. $sub_title . ' / ' . get_the_time('l jS F') .'</span></h1>'; } else { echo '<h1>'. get_the_title() .'<span> / ' . get_the_time('l jS F') .'</span></h1>'; } ?> <?php the_content(''); ?> <div class="a-options"> <a href="#post-<?php the_ID(); ?>" class="comments scrollto">Comment</a> <!-- share --> <div class="share-button"> <div class="buttons"> <div class="facebook"> <div class="fb-like" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false" data-font="arial"></div> </div> <div class="twitter"> <a href="https://twitter.com/share" class="twitter-share-button" data-text="<?php the_title(); ?>" data-url="<?php the_permalink(); ?>" data-via="kettlesyard" data-related="kettlesyard" data-hashtags="kettlesyard">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> </div> <div class="pinterest"> <a href="http://pinterest.com/pin/create/button/?url=<?php the_permalink(); ?>" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a> </div> </div> <span class="pseudo-button">+ Share</span> </div> <!--! /share --> </div><!--! /a-options --> <?php if ( in_category( 'contact' ) ) : // Display nothing ?> <?php // Else, show comments else : ?> <?php global $withcomments; $withcomments = 1; comments_template(); ?> <?php endif; ?> </article> <?php } ?> <?php endwhile; ?> <div id="next-prev-wrap" class="nextprev"><?php next_posts_link(); ?> <?php previous_posts_link(); ?></div> <?php endif; wp_reset_query(); ?> </div> 

Ваша первая проблема заключается в том, что вы используете query_posts . Эта функция не предназначена для создания новых запросов к базе данных; вместо этого он используется для изменения существующего глобального запроса.

Читайте здесь и здесь для получения дополнительной информации о том, что вы можете использовать вместо этого.

Во-вторых, в вашем шаблоне есть какой-то странный код, который, честно говоря, не должен был работать в первую очередь. Эта строка:

 $args= array( 'category_name' => $cat->slug, 'paged' => $paged, 'cat' => '-12', 'posts_per_page' => 2, 'post__not_in' => array( $post->ID ) ); 

… ссылается на переменные, которые я не вижу в другом месте вашего кода. А именно, $cat и $post . Тот факт, что вы ссылаетесь на $post вообще, говорит мне, что у вас есть какой-то другой запрос выше на странице или находится внутри другого цикла … в любом случае вызов функции query_posts() определенно повредит.

Кроме того, небольшая разница между вашей локальной установкой и сетевой установкой также может сыграть определенную роль. Если вы не используете одни и те же версии WP, PHP, MySQL и т. Д. В обеих системах, могут возникнуть такие странные различия.