2013-07-23 3 views
0

Завершите новичку на PHP, но неплохо при сборке. Я начал использовать Advanced Custom Fields для Wordpress, что очень помогает.Условный слайдер Wordpress (расширенные пользовательские поля)

У меня есть код вместе, который превращает поле галереи в ползунок jQuery (вы зацикливаете изображения на заднем конце, и он петляет и создает ползунок). Однако то, что я хотел бы сделать, это загрузить только статическое изображение, если в него введено только одно изображение. В psudo-коде:

Если поле содержит более одного изображения, проведите по ползунку еще раз (если есть только одно изображение) просто оберните одно изображение в теги img.

Текущий живой код, который генерирует ползунок:

<?php 

/* Create the Markup for a slider */ 

$images = get_field('hero_image_gallery'); 

if($images): ?> 
    <div id="slider" class="flexslider"> 
     <ul class="slides"> 
      <?php foreach($images as $image): ?> 
       <li> 
        <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /> 
        <p class="flex-caption"><?php echo $image['caption']; ?></p> 
       </li> 
      <?php endforeach; ?> 
     </ul> 
    </div> 
<?php endif; 

?> 

Любые идеи? Первоначально я думал, что хочу считать $ images, но я не уверен, что содержит количество изображений в галерее.

Edit: Просто Вытряхивали в hero_image_gallery, который начинается:

массив (2)

Там в настоящее время 2 изображения там, и если добавить третий, я получаю массив (3).

Редактировать 2: Полная дамба hero_image_gallery ниже. Мне пришлось отредактировать некоторые детали, так как я могу опубликовать только один URL-адрес в качестве новичка.

массив (2) {[0] => массив (9) {["id"] => int (971) ["alt"] => string (14) "School" ["title"] = > string (12) "home-image-2" ["caption"] => string (0) "" ["description"] => string (0) "" ["url"] => string (74) " # "[" width "] => int (1260) [" height "] => int (860) [" sizes "] => array (9) {[" thumbnail "] => string (74)" # " ["thumbnail-width"] => int (150) ["thumbnail-height"] => int (102) ["medium"] => string (74) "#" ["medium-width"] => int (300) ["medium-height"] => int (204) ["large"] => string (74) "#" ["large-width"] => int (1024) ["large-height"] => int (698)}} [1] => array (9) {["id"] => int (977) ["alt"] => string (0) "" ["title"] => string (12) «home-image-1» ["caption"] => string (0) "" ["description"] => string (0) "" ["url"] => string (74) "#" ["width"] => int (1260) ["height"] => int (860) ["sizes"] => array (9) {["thumbnail"] => string (74) "#" [" thumbnail-width "] => int (150) [" thumbnail-height "] => int (102) [" medium "] => string (74)" # "[" medium-width "] => int (300) [" medium-height "] => int (204) [" large "] => string (74)" # "[" large-width "] => int (1024) [" large-height "] => int (698)}}}

ответ

0

Я думаю, что вы, возможно, ответили на свой вопрос! Если вы в настоящее время есть 2 изображения, и при просмотре возвращаемого массива и возвращается с 2 результатами, а затем проверить, если у вас есть только 1 изображение, которое вы бы сделать что-то вроде этого:

if(count($images) == 1) 

Edit: добавлены полным код

<?php 

/* Create the Markup for a slider */ 

$images = get_field('hero_image_gallery'); 

if($images && count($images) == 1) { ?> 
    <!-- there is only 1 image --> 
<?php } else if ($images && count($images) > 1) { ?> 
    <!-- there is more than 1 image --> 
    <div id="slider" class="flexslider"> 
     <ul class="slides"> 
      <?php foreach($images as $image): ?> 
       <li> 
        <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /> 
        <p class="flex-caption"><?php echo $image['caption']; ?></p> 
       </li> 
      <?php endforeach; ?> 
     </ul> 
    </div> 
<?php } ?> 
+0

Спасибо за ответ. Моя проблема в том, что я полностью понимаю понятия, я еще не научился правильно программировать PHP еще (я дизайнер, «грязный»). – lotech

+0

Вы доберетесь туда! Я чувствовал, что лучший способ изучить язык - это пробная версия и ошибка. Просто подумайте логически - когда вы добавили третье изображение, оно добавило что-то в массив. Таким образом, вы можете сделать вывод (и проверить через некоторое тестирование), что 1 изображение вернет только 1 результат в массив. – zachwills

+0

Спасибо, что присоединился ко мне.Я получил эту часть: p Я имел в виду, что я не уверен, как записать это в целый блок полностью действующего php! – lotech

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