2012-02-19 5 views
1

ОК, здесь я использую jQuery ajax для загрузки сообщения изнутри слайдера. В панели Wordpress я устанавливаю количество сообщений на странице «один».Цикл Wordpress внутри цикла не работает правильно

Проблема, с которой я столкнулся, - это только последнее созданное сообщение продолжает оставаться загруженным. Также иногда внутренний цикл продолжает навсегда.

Мне нужна какая-либо ссылка со слайдера при щелчке, чтобы просто загрузить сообщение внутри области содержимого, которую я установил. Ниже приведен весь соответствующий код.

Ползунок код

<ul id="roundabout" class="clearfix"> 

<?php $argss = array(
"showposts" =>20); 

query_posts($argss); ?> 


    <?php while (have_posts()): the_post(); ?> 

     <li><a href="<?php the_permalink();?>"><?php the_post_thumbnail(array(150, 150, true));?></a></li> 
    <?php endwhile; ?> 

</ul> 

код Ajax JQuery

var $mainContent = jQuery(".content"), 
    siteUrl = "http://" + top.location.host.toString(), 
    url = ''; 

jQuery(document).delegate("a[href^='"+siteUrl+"']:not([href*=/wp-admin/]):not([href*=/wp-login.php]):not([href$=/feed/])", "click", function() { 
    location.hash = this.pathname; 

    return false; 
}); 

jQuery(window).bind('hashchange', function(){ 
    url = window.location.hash.substring(1); 

    if (!url) { 
     return; 
    } 

    url = url + " .content"; 

    $mainContent.fadeOut().load(url, function() { 
     $mainContent.fadeIn(); 
    }); 
}); 

jQuery(window).trigger('hashchange'); 

РНР код

<?php while (have_posts()): the_post(); ?> 

    <div class="content">  

     <?php wp_reset_query(); ?> 

      <?php while(have_posts()): the_post(); ?> 

       <div id="inner"> 
        <h2 class="title"><?php the_title(); ?></h2> 
        <?php the_post_thumbnail(array(150, 150, true)); ?> 
        <?php the_content(); ?> 
       </div> 

       <?php endwhile; ?> 

     <div class="clear"></div> 

    </div> 

<?php endwhile; ?> 
+0

Я не имею большой опыт работы с ajajx wordking с WordPress, так что почему им застрял –

+0

ok реальная проблема - это то же самое содержимое сохраняется, даже если вы посещаете сообщение без хеша –

ответ

3

т ake посмотрите на WP_Query в кодексе: http://codex.wordpress.org/Class_Reference/WP_Query

Ваша «петля внутри цикла» не будет работать так, как вы структурировали здесь, потому что нет второго запроса. Попробуйте использовать WP_Query внутри первого основного цикла, чтобы получить сообщения для второго цикла

<?php while (have_posts()): the_post(); ?> 

<div class="content">  

    <?php 

    // Second Query 
    $the_query = new WP_Query($args); 

    // Second Loop 
    while ($the_query->have_posts()) : $the_query->the_post(); 

    ?> 

      <div id="inner"> 
       <h2 class="title"><?php the_title(); ?></h2> 
       <?php the_post_thumbnail(array(150, 150, true)); ?> 
       <?php the_content(); ?> 
      </div> 

     <?php endwhile; 

     // Reset Second Loop Post Data 
     wp_reset_postdata(); 

     ?> 

    <div class="clear"></div> 

</div> 

<?php endwhile; ?> 

Это должно помочь решить половину вашей проблемы :)

+0

, что часть 'wp_reset_postdata' спасла мою ночь! черт возьми, они ничего не говорят об этом в документах Wordpress на 'the_lopp'. благодаря! – vsync

Смежные вопросы