WordPress цикл внутри цикла не работает правильно - PullRequest
1 голос
/ 19 февраля 2012

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

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

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

Код слайдера

<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

<?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; ?>

1 Ответ

3 голосов
/ 02 марта 2012

взгляните на 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; ?>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...