janochen
  • 0
Мастер

Можно столкнуться с ужасными ошибками, если я размещу основной цикл, использующий `query_posts`, прямо над основным циклом bbPress?

  • 0

Это код:

            <?php get_template_part( 'pagination', 'bbp_replies' ); ?>

            <?php query_posts('gdsr_sort=thumbs&post_type=bbp_reply&posts_per_page=2'); ?>
            <?php while ( have_posts() ) : the_post(); ?>
                <h2><?php  the_title(); ?></h2>
                <?php the_content(); ?>
            <?php endwhile; ?>
            <?php wp_reset_query(); ?>

            <?php while ( bbp_replies() ) : bbp_the_reply(); ?>

                <div class="topic-entry">

                    <div class="topic-author">
                        <?php bbp_reply_author_link( array( 'type' => 'avatar' ) ); ?>
                        <?php bbp_reply_author_link( array( 'type' => 'name' ) ); ?>
                        <?php printf( __( '%1$s', 'bbpress' ), get_the_date() ); ?>
                    </div>

                    <div class="topic-content">
                        <?php bbp_reply_content(); ?>
                        <span class="like-counter"><?php DisplayVotes(get_the_ID()); ?></span>
                    </div>

                        <?php bbp_reply_admin_links(); ?>

                    </div>

В первом query_posts цикле перечислены 2 ответа с наибольшим количеством голосов. Второй цикл bbPress перечисляет все остальные ответы в порядке DESC.

Буду ли я сталкиваться с ошибками, если у меня будут эти два цикла в одном и том же шаблоне файла?

Share
  1. зачем тебе — это разные вещи. какие проблемы вы испытываете?

    • 0
  2. Я бы не стал так делать, но это не должно быть проблемой. Когда ваш файл шаблона выполняется, «настоящий основной цикл» уже содержит сообщения для этой страницы. Затем query_posts() вы выполняете второй запрос, который «скрывает» «настоящий» цикл, но после того, как вы закончите, вы выполняете, wp_reset_query() что делает «настоящий» цикл снова активным циклом.

    Это может привести к путанице и ошибкам, если вы вставите два цикла, например, если вы выполните другой query_posts() в этом основном where цикле. Затем вы должны использовать get_posts() или прямойWP_Query , чтобы предотвратить ошибки.

    Лично я никогда не вызываю query_posts() себя и всегда использую get_posts(), потому что он не меняет никакие глобальные переменные «за моей спиной».

    • 0

Оставить ответ

You must login to add an answer.