2015-02-24 6 views
0

По какой-то причине после использования цикла while внутри оператора if после создания нового объекта запроса WP моя панель управления исчезает.WP_Query, приводящий к исчезновению панели управления Wordpress

<?php 

    $args = array(
     'post_type' => 'info' 
    ); 
    $query = new WP_Query($args); 

?> 
<?php if($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> 
    <section class="info"> 
     <p class="quote"><?php the_field('quote'); ?></p> 
     <div class="text"> 
      <h2><?php the_title(); ?></h2> 
      <p><?php the_content(); ?></p> 
     </div> 
    </section> 
<?php endwhile; endif; wp_reset(); ?> 

Удаление инструкции if и цикла while заставляет панель снова появляться снова. Это, кажется, правильное форматирование, я не могу найти другой случай, когда у кого-то была такая же проблема.

+0

Интересно, что '$ query' зарезервирован, а что, если вы измените его на что-то еще? – Stickers

+0

Я не думаю, что это так. Я просто попробовал другое имя переменной, и это все равно не сработает. – Mouse6541

ответ

1

Как насчет исправления последнего бита wp_reset(); до wp_reset_postdata();?

0

Попробуйте get_posts() вместо new WP_Query();.

Нечто подобное:

<?php 
$args = array(
    'post_type' => 'info' 
); 
$myposts = get_posts($args); 
foreach ($myposts as $post) : 
    setup_postdata($post); 
    ?> 
    <section class="info"> 
     <p class="quote"><?php the_field('quote'); ?></p> 
     <div class="text"> 
      <h2><?php the_title(); ?></h2> 
      <p><?php the_content(); ?></p> 
     </div> 
    </section> 
<?php endforeach; 
wp_reset_postdata(); 
?> 

Надеется, что это помогает.

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