2014-10-23 4 views
0

У меня есть этот код, который работает нормально для того, что я хотел, но мне, вероятно, нужно будет поставить условие, если есть только 2 сообщения, а затем оберните его в <div class="large-6">, а если есть 3 сообщения, тогда оберните его в large-4.WP if condition showposts

Немного смущен, как добавить условие.

<?php 
       $loop = new WP_Query(array('post_type' => 'portfolio', 'showposts' => '3', 'offset' => '1')); 
      ?> 
      <?php while ($loop->have_posts()) : $loop->the_post(); ?> 
       <div class="large-4 columns"> 
        <h5><?php the_title(); ?></h5> 
        <?php edit_post_link(); // Always handy to have Edit Post Links available ?> 
        <?php if (has_post_thumbnail()) : // Check if thumbnail exists ?> 
         <?php echo get_the_post_thumbnail(); ?> 
        <?php endif; ?> 

       </div> 
      <?php endwhile; ?> 

К Питеру:

что-то вроде этого? если это так, это не сработало, если я не сделаю это совершенно неправильно и нообливо.

<?php 
       $query = new WP_Query(array(
        'posts_per_page' => '3', 
        'post_type' => 'portfolio', 
        'offset' => '1' 
       )); 

       while ($query->have_posts()): $query->the_post(); ?> 

        <?php if(!isset ($query->posts[2])){ ?> 
        <div class="large-6 columns"> 
         <h5><?php the_title(); ?></h5> 
         <?php edit_post_link(); // Always handy to have Edit Post Links available ?> 
         <?php if (has_post_thumbnail()) : // Check if thumbnail exists ?> 
          <?php echo get_the_post_thumbnail(); ?> 
         <?php endif; ?> 

        </div> 
        <?php } else {?> 
        <div class="large-4 columns"> </div> 
        <?php }?> 
       <?php endwhile; ?> 

ответ

0

Это только теория, но должно работать. Вот идея:

$loop->posts содержит массив со всеми постами со всеми их ресептивными сообщениями. Поэтому, имея в виду это, должно быть легко определить, есть ли у вас один, два или три сообщения в этом массиве, просто проверяя наличие определенного ключа ключа

Так что вам в основном нужно проверить, есть ли у вас третий пост , так что вы можете попробовать что-то вроде этого

if(!isset($loop->posts[2])) { 
    //add div if less than 3 posts 
}else{ 
    //add div if you have 3 posts 
} 

EDIT

Просто примечание. ОП изменил переменную запроса от $loop до $query в его исходном коде. $loop должно быть соответствующим образом изменено.

+0

Смотрите мое сообщение, пожалуйста. – nCore

+0

Вы изменили свою переменную запроса на '$ query', поэтому вам следует изменить' $ loop' соответственно, поэтому мой код должен стать '$ query-> posts [2]' –

+0

Я изменил его, чтобы теперь ничего не выводить. См. Мое редактирование. – nCore

0

Вы можете поставить условные как

<?php if(condition) : ?> 
    code to execute if condition == true 
<?php elseif(condition2) :?> // repeat as many times as necessary 
... 
<?php else :?> 
    final else if needed, you can just end the if statement if it's only one condition, if you have else if else this is needed 
<?php endif; ?> 

Это в основном это ...

+0

Извините, но вы могли бы построить его, поскольку я полностью смущен. – nCore

+0

Я тоже смущен. Пожалуйста, добавьте правильное объяснение коду. Действительно ли это отвечает OP? –

+0

Это общий способ построения операторов if-else в php. Вы можете сделать с ним то, что хотите. Я думал, что у ОП достаточно знаний, как его реализовать, учитывая, что у него есть код выше, и что он знает, что делает код;) –