2014-11-23 2 views
2

У меня есть следующий код, где я укажу другой порядок div в зависимости от того, является ли поле ретранслятора нечетным или четным, но оно неверно, поскольку оно повторяется ровно дважды. Любая помощь по этой проблеме будет высоко оценена.ACF нечетный даже ретранслятор

<!-- If Even --> 
<?php if(get_field('services_repeater')): $i = 0; 
while(has_sub_field('services_repeater')): $i++; 
if($i % 2 == 0):?> 

<div class="row"> 
<div class="span6 area-text"> 
<?php the_sub_field('area_text'); ?> 
</div> 
<div class="span6"> 
<!-- Carousel Open --> 
    <div class="slider lazy"> 
    <?php 
    $variable = get_sub_field('choose_slider'); 
    $args = array(
    'post_type' => 'portfolio', 
    'portfolio-item' => $variable->slug 
    );    
    $the_query = new WP_Query($args); 
    if($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 
    <div><a class="group1" href="<?php the_permalink(); ?>" title="<?php printf(the_title_attribute('echo=0')); ?>"><div class="image"> 
    <?php $imageID = get_field('thumbnail'); 
    $attachment_id = get_field('thumbnail'); 
     $size = "carousel_main_img"; 
     $imageURL = wp_get_attachment_image_src($attachment_id, $size); ?> 
<img data-lazy="<?php echo $imageURL[0]; ?>" /> 
<div class="post-content"><p class="caption"><?php printf(the_title_attribute('echo=0')); ?></p></div> 
</div></a></div> 
    <?php endwhile; else: ?> 
    <?php endif; wp_reset_postdata(); ?> 
    </div></div> 
<!-- Carousel Closed --> 
</div> 
</div> 
<div id="separator"></div> 

<!-- End If Even --> 
<?php endif; ?> 

<div class="row"> 
<div class="span6 area-text"> 
<?php the_sub_field('area_text'); ?> 
</div> 
<div class="span6"> 
<!-- Carousel Open --> 
    <div class="slider lazy"> 
    <?php 
    $variable = get_sub_field('choose_slider'); 
    $args = array(
    'post_type' => 'portfolio', 
    'portfolio-item' => $variable->slug 
    );    
    $the_query = new WP_Query($args); 
    if($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 
    <div><a class="group1" href="<?php the_permalink(); ?>" title="<?php printf(the_title_attribute('echo=0')); ?>"><div class="image"> 
    <?php $imageID = get_field('thumbnail'); 
    $attachment_id = get_field('thumbnail'); 
     $size = "carousel_main_img"; 
     $imageURL = wp_get_attachment_image_src($attachment_id, $size); ?> 
<img data-lazy="<?php echo $imageURL[0]; ?>" /> 
<div class="post-content"><p class="caption"><?php printf(the_title_attribute('echo=0')); ?></p></div> 
</div></a></div> 
    <?php endwhile; else: ?> 
    <?php endif; wp_reset_postdata(); ?> 
    </div></div> 
<!-- Carousel Closed --> 
</div> 
</div> 
<div id="separator"></div> 


<?php endwhile; ?> 
<?php endif; ?> 

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

<?php if (get_field('services_repeater')): ?> 
    <?php $index = 1; ?> 
    <?php $totalNum = count(get_field('services_repeater')); ?> 
    <?php while (has_sub_field('services_repeater')): ?> 
    <div class="col-sm-4"> 
     <?php the_sub_field('area_text'); ?> 
    </div> 
    <? if ($index % 2 == 0) : ?> 
     <? if ($index < $totalNum) : ?> 
      Row 2<?php the_sub_field('area_text'); ?> 
     <? elseif ($index == $totalNum) : ?> 
     <? endif; ?> 
    <? endif; ?> 
<?php $index++; ?> 
<?php endwhile; ?> 
<?php endif; ?> 
+0

Эй, ваша мысль о использование оператора modulo для определения нечетных/четных чисел является абсолютно правильным. Можете ли вы показать нам пример вывода, где проблема возникает, потому что из того, что я могу прочитать, код выглядит хорошо. –

ответ

3

У вас нет блока else. Ваш код выглядит короче так:

if (($i % 2)==0) { 
    // do even 

} 
// do odd. 

В случае четного даже и делать нечетное будет. Нечетная часть должна идти в другое блок:

if (($i % 2)==0) { 
    // do even 

} else { 
    // do odd 

} 

отсутствует другой блок в коде эта строка:

<!-- End If Even --> 
<?php endif; ?> 
// do odd 

Заменить, что с

<?php else: ?> 
    // do odd 
<?php endif ?> 
+0

Я смотрел на это! Спасибо за вашу помощь. Очень признателен! – Hue

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