2015-07-02 4 views
0

Мне нужна помощь в решении проблемы дублирования. Для того, чтобы иметь дело:Wordpress, foreach внутри foreach, дублированный info

Я 2 подали пользовательские мета

2 filed custom meta

Он отображает этот путь:

only 2 image placed

только 2 изображения размещены, но дублировать <li>.

Первый и третий <li> только видео, второй и четвертый работает отлично, выглядит следующим образом:

enter image description here

foreach($slider_xml->childNodes as $slider){ 
$test_test = get_post_meta(9,'test_1', false); 
foreach($test_test as $test_test){ 
echo '<li class="img-vid-slide">'; 
echo '<iframe src="https://www.youtube.com/embed/'. $test_test . '" frameborder="0" allowfullscreen></iframe>'; 
} 
echo '<div class="img-slide" >'; 
if($link_type == 'Lightbox'){ 
$image_full_url = wp_get_attachment_image_src(find_xml_value($slider, 'image'), 'full'); 
echo '<a href="' . $image_full_url[0] . '" data-rel="prettyPhoto[flexgal]" title="" >'; 
}else if($link_type != 'No Link'){ 
echo '<a href="' . $link . '" >'; 
} 
echo '<img class="'. $i .'" src="' . $image_url[0] . '" alt="' . $alt_text . '" />'; 
echo '</div>'; 
if(!empty($title)){ 
echo '<div class="flex-caption gdl-slider-caption">'; 
echo '<div class="gdl-slider-title">' . $title . '</div>'; 
echo '<div class="slider-title-bar"></div>'; 
echo $caption; 
echo '</div>'; // flex-caption 
} 
if($link_type != 'No Link'){ 
echo '</a>'; 
} 
echo '</li>'; 
} 

ответ

1

Я нахожу решение.

Поданный пользовательские поля: prntscr.com/7oqqvt

Я назвал их, как "ИМЯ_1", "NAME_2" ... "name_4". $ i является равным последнему нубмеру в пользовательском поле.

Результат на экране: prntscr.com/7oqsaw

$i = 1; 
while ($i <= 3): 
foreach($slider_xml->childNodes as $slider){ 
// ======= SAME AS FIRST ====== // 
$test_test = get_post_meta(9,'test_'. $i .'', true);  
echo '<iframe src="https://www.youtube.com/embed/'. $test_test . '" frameborder="0" allowfullscreen></iframe>'; 
echo '<div class="img-slide" >'; 
if($link_type == 'Lightbox'){ 
// ======= SAME AS FIRST ====== // 
} 
echo '</li>'; 
$i++;  
}  
endwhile; 

отлично работает для меня, делать то, что я искал!

Спасибо, Грег, за небольшой намек, но я иду за «пока», а не за «за»! Удачи

0

Не используйте в Еогеасп внутри цикла Еогеасп. Это проблема функции. Используйте альтернативный цикл «для» вместо двойного foreach.

+0

Привет, Грег! Спасибо за ответ. Прошу прощения за мое непонимание. Не понимайте, как делать «за» так, как работает «foreach». Если можно, небольшой намек ... не может увидеть такую ​​же реализацию, пока серфинг – Iliya

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