Больше 4 циклов не выполнять?

Очередная загадка Query_posts

У меня в отдельных сингловых записях при определенных условиях после самого текста записи подтягиваются записи, разбитые по блоках. Делается это вот так:

<!--- ///////////////     НОВОСТИ       //////////////--->
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();

$taxquery['sobytiya'] = $pteg;
$taxquery['post_type'] = "post";
$taxquery['posts_per_page'] = -1;
$wp_query->query( $taxquery ); ?>
<?php if (have_posts()) : ?>
<p class="contype">Новости</p><ul style="margin-bottom: 14px;">
<?php while ($wp_query->have_posts()): $wp_query->the_post(); ?>

<li>[<?php the_time('d.m.Y') ?>] <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php $wp_query = null; $wp_query = $temp; ?>



<!--- ///////////////      Позиции CAN-сети      //////////////--->
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();

$taxquery['sobytiya'] = $pteg;
$taxquery['npopositions'] = "canpos";
$taxquery['post_type'] = "positions";
$taxquery['posts_per_page'] = -1;
$wp_query->query( $taxquery ); ?>
<?php if (have_posts()) : ?>
<p class="contype">Позиции CAN-сети</p><ul style="margin-bottom: 14px;">
<?php while ($wp_query->have_posts()): $wp_query->the_post(); ?>

<li>[<?php the_time('d.m.Y') ?>] <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php $wp_query = null; $wp_query = $temp; ?>


<!--- ///////////////      Позиции НПО ВЕКЦА      //////////////--->
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();

$taxquery['sobytiya'] = $pteg;
$taxquery['npopositions'] = "vektsapos";
$taxquery['post_type'] = "positions";
$taxquery['posts_per_page'] = -1;
$wp_query->query( $taxquery ); ?>
<?php if (have_posts()) : ?>
<p class="contype">Позиции НПО ВЕКЦА</p><ul style="margin-bottom: 14px;">
<?php while ($wp_query->have_posts()): $wp_query->the_post(); ?>

<li>[<?php the_time('d.m.Y') ?>] <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php $wp_query = null; $wp_query = $temp; ?>

Все три блока, отлично выводят записи (если есть), но вот когда добавляю вывод для четвертого блока (даже если с точно такими самими условиями что уже есть) – по цимбалах. Переношу блок по коду выше на пару блоков – работает! Опускаю ниже третьего блока – ноль реакции. И ведь ошибки вроде никакой нет, ведь по сути все запросы написаны по одной схеме, и следовательно, коль выводятся и после первого и после второго, то почему после третьего ничего не происходит?

Загадку разгано:)

Не надо было во всех запросах для каждого из блоков оставлять одинаковые названия массивов, которые содержат условия.

Когда в одном из запросов значений стало на одно меньше, то к запросу присоединлось отсутсвуещее в данном массиве значение из предыдущего запроса (так как название массива такое же), соответсвенно движек не находил записи, удовлетворяющие запрос… 😎

Anonymous
Отправить
Ответ на: