восстановление WordPress сообщения с циклом - PullRequest
0 голосов
/ 05 декабря 2010

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

<ul class= "videoSlider">
                            <?php
                            $pStart = 0;
                            $flag = true;

                            while ($flag) {

                                query_posts('cat=14&posts_per_page=4&offset='.$pStart);

                                $pStart = + 4;
                            ?>


                                <li>
                                <?php
                                if (have_posts ()) {

                                    while (have_posts ()) {
                                        the_post();
                                ?>
                                        <div onclick="something()">

                                    <?php echo the_post_thumbnail(array(215, 190)); ?>
                                         </div>

                                <?php
                                    }
                                } else {
                                    $flag = false;
                                }
                                ?>
                            </li>


                            <?php

                            wp_reset_query();

                            } ?>

Структура, которая мне нужна для слайдера jquery, выглядит примерно так:

                <ui>
                      <li>
                        <div>
                            thumb 1
                        </div>
                        <div>
                           thumb 2
                        </div>
                        <div>
                            thumb 3
                        </div>
                        <div>
                            thumb 4
                        </div>
                    </li>


                    <li>
                        <div>
                            thumb 5
                        </div>
                        <div>
                           thumb 6
                        </div>
                        <div>
                            thumb 7
                        </div>
                        <div>
                            thumb 8
                        </div>
                    </li>

                </ul>

Но код по какой-то причине не работает!Похоже, что после генерации нескольких списков выполнение кода не останавливается и браузер зависает.Я неправильно использовал эту функцию: 'query_posts('cat=14&posts_per_page=4&offset='.$pStart)'?Как мне на самом деле это реализовать?

1 Ответ

0 голосов
/ 06 декабря 2010

Если у вас много постов, этот внешний цикл while будет продолжать работать до тех пор, пока не будет запрошен каждый пост, по 2 за раз!

Мне кажется, что вы что-то делаетеСложно для себя, поэтому вот что я сделал бы вместо:

global $wp_query;
query_posts('cat=14');

if ( have_posts() ):

    $last_post = $wp_query->post_count - 1; // index for the last post
    $counter = 0;

    echo '<ul class= "videoSlider">';

        while ( have_posts() ):

            the_post();

            if ($counter === 0)
                echo '<li>';

            echo '<div onclick="something()">';
            the_post_thumbnail(array(215, 190));
            echo '</div>';

            if ($counter === 3 || $last_post == $wp_query->current_post) {
                $counter = 0;
                echo '</li>'; // close the tag every 4th item, or if we're at the end of the loop

            } else {
                $counter++;
            }


        endwhile;

    echo '</ul>';

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