2014-01-30 2 views
0

Я использую jQuery Backstretch для загрузки галереи на странице. Теперь я пытаюсь сделать галерею в картинах из контента, загруженного через custom meta boxes.Проблема с выходом php-массива ссылок на jQuery backstretch

Вот рабочий сценарий с жестко закодированными ссылками на изображения. Все, что я делаю, передавая массив ссылок на изображения в Бэкстретч, и он сделает все остальное:

jQuery(document).ready(function($){ 
    $('#main').backstretch([ 
     "wp-content/themes/themename/assets/graphics/image1.jpg", 
     "wp-content/themes/themename/assets/graphics/image2.jpg", 
     "wp-content/themes/themename/assets/graphics/image3.jpg", 
     "wp-content/themes/themename/assets/graphics/image4.jpg", 
    ], { 
    fade: 1000, 
    duration: 7000 
    }); 
}); 

А вот моя попытка заменить жестко закодированные изображения с теми, тянут в из пользовательского мета. Функция PHP выводит массив ссылок вытащили из пользовательской меты:

jQuery(document).ready(function($){ 
    $('#main').backstretch([ 
     "<?php $images = rwmb_meta('jb_meta_page_bkg_img', 'type=image_advanced'); 
     foreach ($images as $image) { 
      echo $image['full_url']; 
     } ?>" 
    ], { 
    fade: 1000, 
    duration: 7000 
    }); 
}); 

Это не работает - Бэкстретч нагрузка, но весь массив выводятся в качестве исходного атрибута для первого изображения!

Может ли кто-нибудь увидеть, где это происходит не так?

ответ

1

Я предлагаю строить необходимый массив в PHP и использовать json_encode().

jQuery(document).ready(function($){ 
    $('#main').backstretch(
     <?php 
     $images = rwmb_meta('jb_meta_page_bkg_img', 'type=image_advanced'); 
     $result = array(); 
     foreach ($images as $image) { 
      $result[] = $image['full_url']; 
     } 
     echo json_encode($result); 
     ?>, { 
    fade: 1000, 
    duration: 7000 
    }); 
}); 
+0

Поздний ответ, но это сработало СОВЕРШЕННО. Спасибо огромное! – jasonbradberry

+0

Проделал еще несколько тестов, и я не загружаю изображения на iPhone. Опубликовали это как отдельную проблему здесь: http://stackoverflow.com/questions/22489419/images-not-loading-on-iphone-when-pulled-in-via-array-json-encode – jasonbradberry

0

попробовать

jQuery(document).ready(function($){ 
    $('#main').backstretch([ 
     "<?php $images = rwmb_meta('jb_meta_page_bkg_img', 'type=image_advanced'); 
     echo implode('", "', $images); ?>" 
    ], { 
    fade: 1000, 
    duration: 7000 
    }); 
}); 
+0

Спасибо - попробовал, но не повезло. Это просто выводит слово «Массив» как исходный вывод, а не сам URL. Мне нужно использовать '$ image ['full_url'];' для получения правильного URL для каждого изображения, но не уверен, как добавить это к тому, что вы предложили. – jasonbradberry

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